我在提交日志中搜索了一个感兴趣的主题:
$ git log --pretty=oneline | grep -i ...
$SHA1 < ... commit message ... >
我现在有一个SHA1
,我想知道有关影响SHA1
的文件的信息,以及稍后diff
与他们的父母有关的文件。我怎么能这样做?
答案 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>