如何显示提交的内容?


265

我知道一个愚蠢的方法是:

git diff commit-number1 commit-number2

还有更好的办法吗?

我的意思是我想知道commit1本身,我不想在它之前添加commit2作为参数。


14
虽然“ git show <commit>”是正确的解决方案,但是您可以使用“ git diff <commit> ^!”。得到提交和它的(第一个)父级之间的差异。有关详细信息,请参见man git-rev-parse(1)。
2009年

@Jakub的道具:git diff <commit>^!恕我直言,这就是答案。这就是您在github.com上的commit视图中看到的
Chris

Answers:



63

是否

$ git log -p

你需要什么?

有关更多示例,请查看Git社区手册中有关Git Log章节。(或查看文档。)

更新:正如其他人(JakubBombe)已经指出的那样:尽管上述工作有效,但git show实际上是旨在准确执行所要求的命令的命令。


51

TL; DR

git show <commit>


表演

显示提交对统计信息做了什么:

git show <commit> --stat

记录

要显示提交日志,并为范围内的每个提交引入差异:

git log -p <commit1> <commit2>

什么是 <commit>

每个提交都有一个唯一的ID,我们在此引用为 <commit>。唯一的ID是SHA-1哈希-您存储的内容的校验和加上标题。#TMI

如果您不知道您的<commit>

  1. git log查看提交历史

  2. 找到您关心的提交。


22

我发现“ git show --stat”是这里的最佳选择,它为您提供了提交的简短摘要,您添加和修改了哪些文件而没有一堆东西,特别是如果您更改了很多文件。


6

这是我所知道的一种方式。使用git,似乎总是有不止一种方法可以做到。

git log -p commit1 commit2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.