2011-03-21 46 views
60

在GIT社会本书,它说如何阅读git的日志图

你能做的就是想象另一个有趣的事情提交图形与“--graph”选项,就像这样:

$ git log --pretty=format:'%h : %s' --graph 
* 2d3acf9 : ignore errors from SIGCHLD on trap 
* 5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit 
|\ 
| * 420eac9 : Added a method for getting the current branch. 
* | 30e367c : timeout code and tests 
* | 5a09431 : add timeout protection to grit 
* | e1193f8 : support for heads with slashes in them 
|/ 
* d6016bc : require time for xmlschema 

它会给出提交历史记录行的相当不错的ASCII表示。

我应该如何阅读此图表? 420eac9与其他的有什么不同?

回答

70

星号显示,其中一些承诺:

e1193f85a0943130e367c提交到左支(右分支产生一个|),而420eac9致力于右支(产生在一个|左分支)。 是什么420eac9与其余的不同:它是唯一的承诺正确的分支。

为了完整起见:

  • d6016bc为分支点
  • 5e3ee11为合并提交
  • 2d3acf9是第一次提交合并
+3

我有一个关于提交时间的问题,如图所示。在图中,'420eac9'显示在'30e367c','5a09431'和'e1193f8'上面。这是否意味着'420eac9'是在其他三个之后提交的,还是它在一个分支上的提交被分组在一起,并且它们在分支上出现的顺序没有时间相关性? – Parag 2014-01-08 05:32:26

+3

@Parag:分支中的提交被分组在一起。 '420eac9'是在'e1193f8'分支的第一次提交后完成的,但在'30e367c'之后并不需要 – eckes 2014-01-08 07:22:37

16

420eac9与其下的3个提交不同的分支上。分支在d6016bc之后发生分歧,它们合并在5e3ee11中。

+1

也许比一个更好的措辞后分支不同的是,第二个分支是由'd6016bc'创建的,并与原始分支并行开发。 – Ilkka 2011-03-21 19:00:03