如何告诉`git diff <commit>`来区分以前在`<commit>`中跟踪的未跟踪文件?</commit> </commit>

时间:2014-02-09 01:35:28

标签: git git-diff

如果我想查看<commit>和工作目录(WD)之间的差异,我会运行

% git diff <commit>

这通常可以满足我的需求,但如果WD包含在创建<commit>时被跟踪的文件,但现在没有被跟踪(或在当前分支中),那么差异将WD中的这些文件视为/dev/null

我可以想象这将是适当行为的情况,但目前我希望能够使用文件列表看到<commit>与当前目录之间的“真正”差异在<commit>创建时被跟踪的内容。

是否有某种方法可以指示git diff以这种方式行事?

编辑:如果有办法隐藏(并稍后恢复)只是索引,可能在git reset <commit>之前运行git diff <commit>会在{{之间产生完整的比较1}}和WD,但我还没弄明白如何选择性地隐藏(以后恢复)索引......哦!我想我可以像这样做一个“穷人藏匿”:<commit>!?

2 个答案:

答案 0 :(得分:2)

您可以使用

git diff --diff-filter=M

仅显示已修改的文件而不显示已删除的文件

答案 1 :(得分:0)

如何创建一个临时虚拟提交来保存当前工作树的状态,并与之比较?像

这样的东西
$ git checkout -b working-tree-state
$ git add -f .
$ git commit -m "The current working tree state"
$ git diff <commit>