仅添加索引中已存在的已修改文件

时间:2014-03-03 21:20:04

标签: git

假设我有3个跟踪文件:

A.txt
B.txt
C.txt

我对B.txt进行了更改并执行:

$ git add B.txt

稍后我对A.txt和B.txt进行了更多更改,我想将这些更改重新添加到B.txt到索引,但不是A.txt。如果我这样做:

$ git add -u .

这将添加A.txtB.txt。但是,我希望能够快速地将已跟踪的已修改文件添加到之前已添加到索引中的索引中。这意味着只应添加B.txt

注意:由于我的例子是人为的,因此执行git add B.txt不是一个合适的解决方案。更复杂的例子在我的索引中有大量的文件,但我再次修改它们,我想要一个快速的方法来更新索引中的那些文件与新的工作树更改。

2 个答案:

答案 0 :(得分:3)

git diff --cached --name-only将为您提供已添加并准备提交的所有文件。

执行以下命令只会添加已添加的文件

git add `git diff --cached --name-only`

答案 1 :(得分:3)

使用git update-index --again--again可缩写-g):

   -g, --again
       Runs git update-index itself on the paths whose index entries are
       different from those from the HEAD commit.