2011-09-26 56 views
1

有人能解釋,爲什麼在這樣的情況:兩個分支的指針,但合併一個

A--B--C--D (master) 
    \ 
    \E--F (feature/xxx, feature/xxx-blah) 

,如果我做了合併feature/xxx-blahmaster,分支指針不實際移動?該犯是存在的,master指針先進,但兩者的功能指向同一提交F

我預計這個而不是結束:

A--B--C--D--G (master, feature/xxx-blah) 
    \ /
    \E--F/ (feature/xxx) 
+3

如果你倒糖進入你的咖啡,你想到的是,糖會再有它的咖啡;不,你得到的是帶糖的咖啡。 (用主分支替換咖啡,用特色分支替換糖)。 –

+0

@DanD。這很好 - 我必須嘗試記住這個比喻:) –

回答

3

這是事先設計 - 當您合併,只推進當前分支。這實際上是一種有用的特性,因爲如果不是它的工作如你預期,你以後就不會輕易能夠告訴什麼只是你的特性分支,你已經合併之後 - masterfeature/xxx-blah將包含完全相同的提交。

在大多數情況下(尤其是「瓷器」命令),在Git中創造新提交的行動將推動當前分支,但不會推動任何其他分支機構的副作用。

的另一點,可能是值得做的是,你可以合併來自任何提交(或多個) - 他們不必爲分支。

+0

好吧,我明白了。出於某種原因,我感到合併功能實際上在所有情況下都移動了功能指針。我不知道爲什麼(是的,我沒有合併)。必須有更多咖啡.... :( – viraptor

相關問題