当我执行git diff COMMIT
我看到该提交和 HEAD 之间的更改(据我所知),但是我希望看到该单个提交所做的更改。
我在diff
/ log
上没有发现任何明显的选项可以为我提供输出。
要查看特定COMMIT
哈希的差异:
git diff COMMIT~ COMMIT
将向您显示该COMMIT
的祖先和COMMIT
之间的区别。有关命令的详细信息,请参见git diff的手册页,以及~
表示法及其朋友的gitrevisions 。
另外, git show COMMIT
也会做类似的事情。 (提交的数据,包括其 diff - 但不包括合并提交。)请参见git show manpage 。
如 “ 与父代提交 git commit 的差异的简写? ” 中所述,您还可以将git diff
与以下内容一起使用:
git diff COMMIT^!
要么
git diff-tree -p COMMIT
使用 git show 时,您将需要(为了仅关注 diff)执行以下操作:
git show --color --pretty=format:%b $COMMIT
COMMIT
参数是一个commit-ish :
甲commit 对象或一个对象可以被递归地解除引用到一个提交对象。以下是所有提交 - ishes:提交对象, 标签对象是指向一个 commit 对象,标签对象指向一个标签对象指向一个 commit 对象,等等。
请参阅gitrevision“指定版本”以引用提交。
另请参见 “ 树状结构在 Git 中是什么意思? ”。
您也可以尝试以下简单方法:
git show <COMMIT>
git show
显示最近一次提交中所做的更改。
等效于git show HEAD
。
git show HEAD~1
使您返回 1 次提交。
首先使用来获取提交 ID,
git log #to list all
要么
git log -p -1 #last one commit id
复制提交 ID。
现在,我们使用两种方法来列出特定提交的更改,
方法 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
方法 2:
git show commit_id
For example: git show 1c6a600a
我通常这样做:
git diff HEAD~1
显示有关最后一次提交的更改。如果您有更多提交,只需将数字 1 增加到要查看的提交差异数即可。
git show <commit_sha>
这将向您显示该提交中的内容。我认为您可以通过在两个提交阴影之间放置一个空格来进行调整。
git show <beginning_sha> <ending_sha>
如果您经常重新定基,这将非常有用,因为功能日志将全部排成一行。
在git-diff(1)的手册页中:
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>
在中间使用第三个:
git diff [options] <parent-commit> <commit>
同样在同一手册页的底部,在 “ 示例” 部分中 :
$ git diff HEAD^ HEAD <3>
比较最后一次提交和最后一次提交之前的版本。
诚然,它的措词有些混乱,它不会像
将最近的提交与之前的提交进行比较。
以下似乎可以完成工作;我用它来显示合并带来了什么。
git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>
另一种可能性:
git log -p COMMIT -1