2011-03-21 44 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