2016-01-27 73 views
1

請幫我理解爲什麼git日誌顯示了一個額外的紫色線,用於合併到develop分支中。揭祕這個git日誌圖

我們使用gitflow,藍線代表直接提交的提交。黃線是我們合併發佈的主分支。其他行是發佈或修補程序。

在這種情況下,明亮的綠線是從主分支創建的修補程序。在修補程序分支上有一個提交,然後它「完成」(即合併到develop和master)。因爲我看到明亮的綠色線合併成黃色(主)線,所以對主合併的提交是合理的。對我來說沒什麼意義的是引入了粉紅色的行,它顯示了hotfix分支合併到develop分支中的情況。我期望明亮的綠線終止於藍線。該圖使得它看起來像開發被分支在「拋出異常」提交時,當它不是。

git log看起來很相似(有一條深藍色的線,很難看)。

enter image description here

我有一個理論,但我希望這個有待確認。當我在本地進行了「添加Raygun集成」的更改時,出現了一個突出的變化,我沒有從原點(熱修復集成)獲取併合並。我認爲粉紅線顯示出一個分歧,因爲「合併Raygun集成」提交之前我合併了熱修復提交。當我將原產地合併到我的本地並推送時,開發分支然後被重新整合。如果是這種情況,如果我先從原點提取未完成的提交,然後提交我的更改,「合併分支」修補程序/ 2.5.1「提交會顯示合併到藍線嗎?

+0

這可能已經太晚了,但是亞倫對你在網上和公開發布他們的提交歷史記錄還可以嗎? – Makoto

+0

'這張圖看起來像是當開發者在「拋棄異常」提交時發生分支時,它不是。「是的!你有兩個提交完成相同的祖先,發展分支分歧。這是古典的,如果你不想要這個臨時分支,你可以強制快進。 –

回答

1

您的理論是正確的除了說git中的「分支」這個詞是不明確的:分支名稱developmaster,和hotfix/2.5.1,然後就有通過繪製分支和合併線一個分支名稱只是將一個特定的提交標識爲「該分支的提示提交」,但該提交也可以在任何數量的其他分支上進行。合併只是添加一個新的提交,至少有兩個現有的提交

這些自動圖形抽屜喜歡爲輔助合併線分配新顏色。也就是說,他們選擇合併的一側(「第一個父」)作爲「主」線,並保持該顏色前一個提交,但爲另一側使用不同的顏色。由於那裏有一個額外的合併,你會得到一個額外的顏色。

+0

這是[相關問題](http://stackoverflow.com/questions/25068543/what-exactly-do-we-mean-by-branch)(關於術語「分支」的含糊性質),這是順便也回答了torek :) – Jubobs