0

我试图使用Add structure下面显示的消息获取提交的差异,但git diff fb237ff显示了提交的差异"Add title"。我怎样才能得到SHA我想要的差异而不是这个提交的孩子?:

commit 31013a1 (HEAD -> master, origin/master)
Author: user.name <user.email>
Date:   Sun Jun 17 19:28:52 2018 +0100

    Add title

commit fb237ff
Author: user.name <user.email>
Date:   Sun Jun 17 19:24:33 2018 +0100

    Add structure

commit 69d64b4
Author: user.name <user.email>
Date:   Sun Jun 17 19:10:26 2018 +0100

    Add heading
4

3 回答 3

3

git diff SHA显示了从命名提交到当前 HEAD 的差异——这将是自提交以来发生的所有变化——即最新的提交。

您可能希望git show SHA向您git log -p显示该提交中包含的更改,或者显示提交消息和更改。

于 2018-06-19T11:38:03.150 回答
1

git diff <commit>向您展示您的工作目录和 <commit> 之间的区别。因此,在您的情况下,这确实是 31013a1 的内容(加上您可能拥有的任何其他未提交的更改)。

为了查看一个提交引入的更改,您可以执行以下操作:

git show <commit>
于 2018-06-19T11:42:21.697 回答
1

git diff接受一两个修订进行比较。当只提供一个时,它会将工作树与它进行比较。

如果您发布了git log -n 3then HEADis的输出31013a1并且以下 Git 命令是等效的:

git diff fb237ff
git diff HEAD~1

如果要显示提交引入的更改,fb237ff则必须将其与其父级 ( 69d64b4) 进行比较。为此,您可以使用以下任何命令:

git diff 69d64b4 fb237ff
git diff fb237ff~1 fb237ff
git diff HEAD~2 HEAD~1

阅读文档git diff以及如何指定Git 修订版

于 2018-06-19T11:41:20.440 回答