0

本书的部分:

http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-the-Repository#Staging-Modified-Files

说如果我更改文件 A,运行 'git add A' 然后再次更改文件 A,在此文件上运行 'git commit',则只会提交以前分段的更改。要提交未暂存的更改 - 再次添加文件,然后提交。

然而,经过一些测试,结果表明 git 提交了文件 A 的所有更改,即使是在文件最初暂存后所做的更改。

任何人都可以对这个问题有所了解吗?谢谢。

编辑:我没有使用 -a 选项看起来如果我为“git commit A”明确指定文件(我没有使用 -a 选项),它也会提交未暂存的更改。没有文件“git commit”的提交要求输入提交消息,然后按照书中描述的方式进行操作。

4

2 回答 2

1

您如何确定它“提交文件 A 的所有更改”?我无法在我的git. 重申我认为你在说的话,如果你遵循这个过程:

$ git add A                 #initial commit of A
$ git commit -m first
$ <modify A>
$ git add A                 #stage first set of changes
$ <modify A again>
$ git commit -m second      #without staging second modifications

此时您应该看到的是第一组更改(而不是第二组更改)已提交。git show HEAD:A应该在您进行第二次修改之前显示文件。但是,第二次修改仍将在您的文件 ( cat A) 的工作副本中,并且git status应该报告 A 中有未暂存的更改。这正是我尝试复制它时得到的,并且应该是预期的。

如果这不是你所看到的,那么要么你做了与上面列出的不同的事情,要么git你正在运行的版本被破坏了。

于 2012-08-31T16:58:35.163 回答
1

您可能-a在提交时添加了该选项,这会在提交之前对所有内容进行另一个添加。当您省略-a.

于 2012-08-31T15:51:13.813 回答