git - 如何告诉 `git diff <commit>` 区分过去在 `<commit>` 中跟踪的未跟踪文件?

标签 git git-diff

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

% git diff <commit>

这通常会做我想做的事,但如果 WD 包含在 <commit> 时被跟踪的文件,它就会这样做。已创建,但现在(或在当前分支中)未被跟踪,则生成的差异将 WD 中的这些文件视为 /dev/null .

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

有没有办法指示git diff以这种方式行事?

编辑:如果有办法 stash (并稍后恢复)只是索引,也许运行git reset <commit>之前git diff <commit>将在 <commit> 之间进行全面比较和 WD,但我还没有想出如何有选择地 stash (然后恢复)索引……哦!我想我可以像这样做一个“穷人的 stash ”:cp -a .git/index .git/index.bak !?

最佳答案

你可以使用

git diff --diff-filter=M

只显示修改过的文件,不显示删除的文件

关于git - 如何告诉 `git diff <commit>` 区分过去在 `<commit>` 中跟踪的未跟踪文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654104/

相关文章:

Git 子模块与 Nuget 包

git - 如何查看git存储库中已经存在的行尾类型?

svn - 将 git-svn 与现有的 svn 项目一起使用

git - 如何在 git 中对当前头部的提交之间应用差异?

git - git 使用的差异版本是什么? diff2 还是 diff3?

分支 A 和 B 之间的 Git diff,选择一组文件模式更改,将这些更改重置到分支 A

git - 提交后向 Github 用户名显示头像

android - 如何使用git跟踪android分支

windows - Git diff 在路径中带有下划线的文件上失败

Git diff 工作不正确 - 许多更改