cherry-pick多個commitid時的順序說明


     有的時候,我們在一個分支上提交了幾個commit,然后我們會需要提交到其他分支上,一般情況下,我們會采用的merge的方式來合並分支,另外一種方式是只需要其中幾個提交時,我們會cherry-pick到分支上,那么當要cherry-pick的幾個提交之間有依賴關系要怎么處理呢?

 比如,我們在branch_test上修改了三個提交,分別是commit1,commit2,commit3,其中commit1的改動是添加了一個test.txt的文件,commit2是在test.txt文件中寫入了"test",commit3是再test.txt中追加了"test11",我們需要將這三個提交cherry-pick到branch_target分支上,很明顯,這三個提交是有依賴關系的

commit3  (再將“test11”追加到test.txt)

commit2    (將“test”寫入test.txt)

commit1     (創建test.txt)

     有的人可能會覺得,既然最后一個提交commit3已經是最終結果了,那么直接cherry-pick這個提交到目的分支上不就可以了嗎?其實是不行的,我在gerrit上直接cherry-pick這個提交到branch_target分支,報錯失敗,有沖突。既然有沖突,那么就解決沖突,我把這個提交使用命令行的方式cherry-pick到本地的branch_target分支上,結果報錯是“delete by us :test.txt ”,是因為這個文件在這個分支上並不存在,所以他就報這個錯了。

      那么要怎么操作這種有關聯的提交呢,首先先把commit1 cherry-pick到branch_target上,並把提交合並到branch_target,然后再把commit2 cherry-pick到branch_target上,再把提交合並到branch_target上,最后commit3也是一樣的,cherry-pick到branch_target上,然后再合入提交。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM