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

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


当前回答

如“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中是什么意思?”。

其他回答

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

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

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

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

首先使用,

git log #to list all

Or

git log -p -1 #last one commit id

复制提交id。

现在我们使用两种方法列出特定提交的更改,

方法1:

git diff commit_id ^#提交id类似于1c6a6000asad012

方法2:

git show commit_id
For example: git show 1c6a600a

如“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中是什么意思?”。

您也可以尝试以下简单方法:

git show <COMMIT>

从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>

比较上次提交和上次提交之前的版本。

诚然,它的措辞有点混乱,但也不会那么混乱

将最近的提交与之前的提交进行比较。