如果我想要查看<commit>和工作目录(WD)之间的差异,我运行以下命令:
% git diff <commit>
这通常可以满足我的需求,但如果WD包含在创建
<commit>
时正在跟踪的文件,但现在(或当前分支中)没有被跟踪,则生成的差异将把这些文件视为/dev/null
。我可以想象出一些情况下这可能是适当的行为,但目前我想能够使用在创建
<commit>
时正在跟踪的文件列表,查看<commit>
和当前目录之间的“真实”差异。有没有一种方法可以指示
git diff
以这种方式运作?编辑:如果有一种方法可以仅存储(并稍后恢复)索引,那么在
git diff <commit>
之前运行git reset <commit>
可能会产生<commit>
和WD之间的完整比较,但我还没有弄清楚如何选择性地存储(并稍后恢复)索引...哦!我猜我可以像这样做一个“穷人的存储”:cp -a .git/index .git/index.bak
!?
git diff
将它们与<commit>
中的对应文件进行比较。 - kjo