2013-12-20 75 views
26

我在主分支中有33個提交的提交。現在我需要保持整潔的記錄。所以現在我已經創建了功能分支,並且我試圖將這33個提交分類到不同的功能分支中。那麼是否有可能一次選擇多個提交以複製相關的功能分支?當我嘗試多次提交櫻桃挑選命令時,我也面臨着它的衝突。多次提交cherry-picking

git cherry-pick A B C 

這裏A,B,C是提交的哈希碼。

+1

嗯,問題在哪裏? – silvio

+0

@silvio:問題是如何選擇多個提交?我的做法是正確的,如果是的話,那麼如何解決櫻桃採摘衝突。 –

+0

aaah - 是的,你這樣做是正確的:-) – silvio

回答

17

你這樣做是正確的。該大綱是

git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff] <commit>... 

git cherry-pick從左至右犯下去。你可以訂購你想要的。 如果你有衝突,你有三種選擇。你可以git cherry-pick --quit(停止櫻桃採摘,讓你的樹處於他目前的狀態),git cherry-pick --abort(停止櫻桃採摘和重置你的分支到他開始之前的狀態git cherry-pick),或者用編輯或git mergetool解決這個衝突,然後git cherry-pick --continue轉到您的列表中的下一個提交。

+2

+1提及'git cherry-pick --continue'用於處理衝突時挑選多個提交:) –

6

如果您需要保持整潔的記錄,您最好創建一個主題分支並運行git rebase -i <commit before the 33rd>,這是一個交互式底座。按照說明放棄提交。這應該比選櫻桃更簡單,所以這麼多的提交都是按照特定的嚴格順序進行的。

+0

理想情況下,交互式重新分配應該發生在你的特性分支中,重寫在發展或主分支機構的歷史細心處理 –