2011-09-30 69 views
54

我搜索的兴趣在提交日志的话题:获取有关SHA-1提交对象的信息?

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

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

我现在有一个SHA1,我想知道这些文件影响该SHA1,也许以后diff他们与父母的信息。我怎样才能做到这一点?

回答

85

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

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

这是一个答案 View a specific Git commit 它没有回复框,因为它已被标记为这个问题的一个副本。 一些寻找上述问题的答复的人都可能会遵循链接,寻找这里的答案。

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

有些时候你已经确定了它的SHA1代码提交的时候,你会想知道的一切:所有修改过的文件,有什么实际变化等

另一个问题更加具体。有人在文件中存在可疑的软件行,并使用“git blame”将其跟踪到特定的SHA1代码。然后,他们只是想知道哪些软件的人为变化引入了该行。没有兴趣了解所有其他更改的文件,对获取文件的完全差异感兴趣,甚至无法获得该文件的差异。这只是了解哪些更改引入了一行代码。

而不是像

c27feeaa9b2c6270ff559b21eaf9f1e0317676a7 

我们要像

Humanitarian Aid Feature 

Left handed Thread Fix 

信息要做到这一点的信息,使用

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

其中GIT中显示--no补丁(即与--no补丁选项)的关键在于回答eykanal的问题View a specific Git commit

使用

git show --no-patch <SHA1> 
如果你想作者和日期信息太

0

您还可以获取有关commit对象的具体信息使用cat-file命令(使用SHA1)。

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

样本输出:

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