我有三個分支A,B和C B被定期合併到C的差別混帳 - 合併分支
o---o---o A
/
--------o---o---o---o---o---o B
\ \ \ \
o---o---o---o---o---o C
現在我要合併我用C做了改變,但沒有合併從B的頂部A. 在git中做這件事最簡單的方法是什麼?
我有三個分支A,B和C B被定期合併到C的差別混帳 - 合併分支
o---o---o A
/
--------o---o---o---o---o---o B
\ \ \ \
o---o---o---o---o---o C
現在我要合併我用C做了改變,但沒有合併從B的頂部A. 在git中做這件事最簡單的方法是什麼?
使用git rebase。
首先,衍合C對B的頂部:
git checkout C
git checkout -b rebasedC#Let's do a new branch for it also, just in case
git rebase B
它將把所有的C從B提交給B, 的現在,我們要移植分支rebasedC至A:
git rebase --onto A B rebasedC
所以,現在你的C-commits在rebasedC分支的A之上。現在你可以快速轉發你的A:
git checkout A
git merge rebasedC
git branch -d rebasedC# I don't think you would need it.
就是這樣,我希望。
您可以試試cherry-picking C的非合併補丁。準備好處理合並衝突。 :)
如果我理解正確的,要採取由C一些提交到A.
如果that's的情況下,爲什麼難道你不「摘櫻桃」呢?它可能會導致衝突,但我認爲它你最好的機會:)
http://schacon.github.com/git/git-cherry-pick.html
http://schacon.github.com/git/user-manual.html#reordering-patch-series
要你想哪個分支合併呢? –
他希望它在A – CharlesB
之上這不會導致你提交了Q,W(分支C),E,R(分支B) - 合併 - T,Y(分支C)並且只是提交從分支C中選擇Q,W,T,Y將會由於E,R(可能是T,Y基於)中的缺失代碼而破壞事物? –