显示最近提交中未触及的文件的 git diff HEAD~1

显示最近提交中未触及的文件的 git diff HEAD~1

在 Git 中,要查看与上次提交的差异,我运行以下命令:

git diff HEAD~1

要查看与单个相关的提交,file我可以运行以下命令:

git log --oneline file

但是如果我运行以下命令并且我想要引用的文件在最后的提交中没有更改,则 Git 不会显示任何内容。

git diff HEAD~1 file

HEAD如果某个文件未在 指向的引用中提交,我该如何以类似于但与特定文件的方式查看差异HEAD

答案1

HEAD~1如果您想查看上次提交与之前提交之间未更改的文件的差异( ),则必须明确引用 SHA。

运行日志以查看您想要查看的一些 SHA

git log --oneline <file>

示例输出如下:

af46919 已删除 - 改为致电当地披萨店
b09206c 将酱汁和一瓶胡椒博士添加到列表中
ad90f90 揉面团并放置一夜

现在,如果您想查看文件更改的差异,可以通过看到的第二个 SHA 引用它。在本例中,我们从示例中得到了以下内容:

git diff b09206c <file>

以上是简写

git diff b09206c HEAD <file>

或者可以这样想:

git diff <start-commit-SHA> <future-commit-SHA> <file>

要将其作为一个命令运行(例如脚本),您可以执行以下操作:

git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file> 

相关内容