如何在不提供确切提交哈希版本的情况下比较两次提交



https://stackoverflow.com/a/3338145/391104

我已经尝试了以下所有方法来查询更改给定文件的最后两次提交之间的差异(不仅是最近的两次提交,还有两次具有特定效果的特定提交)。不幸的是,没有一个对我有效。

git 1.8.3.1版

$ git diff HEAD^^ HEAD main.c
$ git diff HEAD^^..HEAD -- main.c
$ git diff HEAD~2 HEAD -- main.c

唯一有效的方法是提供两个提交哈希版本。

问题>你知道为什么我不能用上面的HEAD来比较吗?

以下是我尝试过的:

$ git lg1 abc.xml |head -n 3
* 3f13aa1 - (3 hours ago) test 2 - guest
* d59d3bc - (8 months ago) test 1 - guest
* 3a19f36 - (1 year, 2 months ago) test 0 - guest
$ git diff d59d3bc..3f13aa1 abc.xml
diff --git a/abc.xml b/abc.xml
index 5db0595..2790562 100644
--- a/abc.xml
+++ b/abc.xml
@@ -40,6 +40,12 @@
Hello
+    World
$ git diff HEAD~2 HEAD~1 abc.xml
$ git diff HEAD^^ HEAD abc.xml
$ git diff HEAD^^..HEAD abc.xml
$ git diff HEAD~..HEAD abc.xml

HEAD不是文件上的最后一次提交,而是当前签出的分支中的最后一个提交。如果最后几次提交没有影响所讨论的文件,那么使用HEAD确实会返回一个空输出。

如果您想查看最近的提交对文件做了什么,使用git log-p标志可能更容易:

git log -n1 -p abc.xml

相关内容

  • 没有找到相关文章

最新更新