获取有关SHA-1提交对象的信息?

时间:2011-09-30 12:04:29

标签: git

我在提交日志中搜索了一个感兴趣的主题:

$ git log --pretty=oneline | grep -i ...

$SHA1 < ... commit message ... >

我现在有一个SHA1,我想知道有关影响SHA1的文件的信息,以及稍后diff与他们的父母有关的文件。我怎么能这样做?

3 个答案:

答案 0 :(得分:91)

git show <SHA1>将显示从父提交更改的文件的提交日期,作者,父级和差异。

答案 1 :(得分:5)

git show --no-patch --oneline <SHA1>
git show --no-patch <SHA1>

这是一个答案 View a specific Git commit 没有回复框,因为它已被标记为此问题的副本。 一些寻求回答上述问题的人可能会关注此链接并在此处寻找答案。

两者都是关于从SHA1代码获取有关提交的信息的问题。

有些时候,当您通过SHA1代码识别出提交时,您需要了解有关它的所有内容:所有已更改的文件,实际更改的内容等。

另一个问题更具体。有人在文件中有一个可疑的软件系列,并使用&#34; git blame&#34;跟踪它到特定的SHA1代码。 然后他们只是想知道人类用哪种软件改变引入了那条线。没有兴趣知道所有其他已更改的文件,没有兴趣获得文件的完整差异,甚至没有获得该文件的差异。它只是知道哪个更改引入了一行代码。

而不是像

这样的信息
c27feeaa9b2c6270ff559b21eaf9f1e0317676a7

我们需要像

这样的信息
Humanitarian Aid Feature

Left handed Thread Fix

为此,请使用

git show --no-patch --oneline <SHA1>

其中git show --no-patch(即使用--no-patch选项)是回答eykanal问题的关键View a specific Git commit

使用

git show --no-patch <SHA1>

如果您还想要作者和日期信息。

答案 2 :(得分:3)

您还可以使用cat-file命令获取有关提交对象的特定信息(使用SHA1)。

E.g。 git cat-file -p <sha1>

示例输出:

 $ git cat-file -p xxxx
tree <sha1>
parent <sha1>
parent <sha1>
author <author> <unix timestamp>
committer <committer> <unix timestamp>

<commit message>