2017-03-06 435 views
2

我們的團隊是git的新手(我們更多的是svn店)。我們試圖弄清楚這些概念,但有時我們會看到奇怪的結果。這個git圖表是什麼意思?

例如,這裏是從GitKraken截圖:

Git Kraken Screenshot

藍線是主分支,爲什麼有差距嗎?哪個git命令可以重現這一點,是否有這樣做的問題?

+1

可能重複[我們是什麼意思的「分支」?](http://stackoverflow.com/questions/25068543/what-exactly-do-we-mean-by-branch) – mkrieger1

+1

@ mkrieger1也許它是一個重複,因爲我們不完全明白什麼是分支,但你能解釋我們什麼我們明白錯誤 –

回答

1

藍線不是您的主分支。提交不屬於任何特定的分支。在Git中,您的歷史記錄是DAG(有向無環圖)。分支和標籤只是粘貼到你喜歡的任何提交後的便籤,與真正的便利貼一樣,你可以剝離分支或標籤標記並將其粘貼到任何你喜歡的其他提交(不一定是已推送的最好主意歷史,但完全合法純粹地方的東西)。分支post-it和標籤post之間的唯一區別是,分支post-it會在檢出分支時自動移動到新的提交中(實際上是分支,而不僅僅是分支提交的提交,可能有多個分支後指向相同的提交)並創建一個新的提交。因此,如果左上角的淺藍色線條是主分支的一部分,那麼兩個紅色的提交(而不是圖像上方的新提交)以及右下方的粉紅色提交以及淺藍色和暗藍色提交在左下方。

4

線條及其顏色不直接對應分支。分支只是一個指向提交的指針。 mkrieger1s answer中的鏈接詳細討論了這一點。

你的圖形非常好,你只是在閱讀/解釋錯誤。每個大點(包含一個化身)都是一個提交,每個提交只有一個父提交。每個小點都是一個合併提交,每個合併提交都有兩個父母。

中間的大結是兩個父提交(從下面到達結的行)的合併提交;合併提交本身是另外三個提交(超出合併本身的提交)的父代。

您可以在git存儲庫的每個圖形表示中看到這一點,它非常好。

-1

它看起來像藍色分支合併到紅色分支,然後刪除。還行吧;當分支合併時,其中的提交成爲目標分支的一部分,因此不再需要「主」。 後來,創建了一個新的「主」分支。

+0

沒有主wa wa snot創建或刪除,並且t似乎(與其他答案相比),你沒有得到這個圖是製作的 –

+0

那麼,你問「哪個git命令可以重現這個」,刪除和重新創建主分支是重現你的結果的一種方法。重點是,一旦您的主分支成爲另一分支的一部分(例如通過合併),您是否刪除它並稍後重新創建並不重要;一個git分支沒有歷史記錄,但它指向的是提交。 – Molip