我有一个 Git 预提交钩子,它去除空格并将修改后的文件留在工作副本中,这样它就不会踩到像git add -p
.
如果我提交了许多更改中的一个文件,并更正了空白,则我在工作副本中更改了两个文件和一个暂存文件(也在工作副本中,但暂存更改有空白错误):
vi fileWithBadWS.txt # leave bad whitespace
vi fileWithGoodWS.txt # don't leave bad whitespace
vi unrelatedFile.txt
git add fileWithBadWS.txt fileWithGoodWS.txt
git commit -m "Commited files, one with bad whitespace" # pre-commit hook fails
回购现在看起来像这样:
On branch master
Changes to be committed:
modified: fileWithBadWS.txt # bad WS
modified: fileWithGoodWS.txt
Changes not staged for commit:
modified: fileWithBadWS.txt # fixed WS
modified: unrelatedFile.txt
我可以用:
git diff
看到fileWithBadWS.txt
和unrelatedFile.txt
git diff --cached
查看暂存文件fileWithBadWS.txt
和fileWithGoodWS
.
我怎样才能只看到在工作副本中修改和暂存的文件(即只是fileWithBadWS.txt
)?
注意:这个问题以空格和预提交钩子为例,但更普遍地适用于任何情况,当你有一些文件暂存而一些没有,有一些重叠。