假设我有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.txt
和B.txt
。但是,我希望能够快速地将已跟踪的已修改文件添加到之前已添加到索引中的索引中。这意味着只应添加B.txt
。
注意:由于我的例子是人为的,因此执行git add B.txt
不是一个合适的解决方案。更复杂的例子在我的索引中有大量的文件,但我再次修改它们,我想要一个快速的方法来更新索引中的那些文件与新的工作树更改。
答案 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.