2016-09-17 24 views
3

這是我的圖:Git的 - 如何更新舊犯

Branch A a-->b 
       | 
       v 
Branch B  b-->c 

我有分支B說出來的分支A的,從提交b
我在分支B上做了一個提交,名爲c

現在讓我們假設我提交更新分行Agit commit --amendbb'

Branch A a-->b' 
       | 
       v 
Branch B  b-->c 

如何在分支B更新COMIT b是準確b'

感謝

回答

3

其實,虎視眈眈是

a--b (A) 
    \ 
    c (B) 

後修改,你將有一個新的b'(標記btmp):

a--b' (A) 
\ 
    b--c (B) 
(tmp) 

您將需要變基乙到A上:

git rebase --onto A tmp B 

a--b' (A) 
    \ 
    c' (B) 

由於divyum的意見,也可以合併,但將增加A,並複製b承諾之間,從而可能導致衝突:

a--b'--M (A) 
\ /
    b--c (B) 

我喜歡櫻桃採摘或墊底。

+0

不會將A合併到B或從A到B的櫻桃挑選提交幫助? – divyum

+0

@divyum'rebase --onto'在'tmp'到'B' HEAD之後挑選每個提交併將它們重播到'A':請參閱http://stackoverflow.com/a/1994491/6309。 – VonC

+0

ohk,有道理,或者合併A到B. @VonC – divyum