当我执行gitdiffCOMMIT时,我看到了提交和HEAD之间的变化(据我所知),但我希望看到单个提交所做的变化。

我还没有在diff/log上找到任何明显的选项来提供输出。


当前回答

要通过提交查看作者和时间,请使用gitshowCOMMIT。这将导致如下情况:

commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <you@you.com>
Date:   Fri Jul 24 17:46:42 2015 -0700

     Merge remote-tracking branch 'origin/your-feature'

如果您想查看哪些文件已更改,请使用上面“合并”行中的值运行以下命令:git diff--stat a2a2894 3a1ba8f。

如果要查看实际差异,请运行git-stat a2a2894 3a1ba8f。

其他回答

要查看特定COMMIT哈希的差异,其中COMMIT是提交的哈希:

gitdiffCOMMIT~COMMIT将向您展示COMMIT的祖先和COMMIT之间的区别。有关命令和gitrevisions的详细信息,请参阅gitdiff的手册页。

或者,gitshowCOMMIT也会做类似的事情。(提交的数据,包括其diff,但不包括合并提交的数据。)请参阅gitshow手册页。

(gitdiffCOMMIT也会显示COMMIT和头部之间的区别。)

检查完整更改:

  git diff <commit_Id_1> <commit_Id_2>

仅检查更改/添加/删除的文件:

  git diff <commit_Id_1> <commit_Id_2> --name-only

注意:对于检查diff而不在两者之间进行提交,您不需要输入提交id。

以下代码将显示当前提交

git show HEAD

如“gitcommit与其父级的差异的速记?”中所述,您也可以将gitdiff用于:

git diff COMMIT^!

or

git diff-tree -p COMMIT

使用gitshow,您需要(为了只关注diff):

git show --color --pretty=format:%b COMMIT

COMMIT参数是COMMIT-ish:

提交对象或可以递归地取消引用到提交对象的对象。以下是所有提交对象:提交对象、指向提交对象的标记对象、指向指向提交对象标记对象的标签对象等。

参见gitrevision“指定修订”以引用提交。另请参阅“tree-ish在Git中是什么意思?”。

gitshow显示了最近一次提交中所做的更改。它相当于git show HEAD。

git show HEAD~1会让您返回一次提交。