一、gitcherry-pick多個commit
git cherry-pick commit1 commit2 commit3
使用gitcherry-pick命令可以選擇單個commit應用到當前分支上,但有時候我們需要選擇多個commit進行應用,此時可以在命令行上指定多個commit。
舉個例子,假設有三個commit需要應用到當前分支上:
$ git log --oneline f821352 Updated README c1720eb Added new feature 23b75d6 Initial commit $ git cherry-pick f821352 c1720eb 23b75d6
上述命令將先將f821352 commit應用到當前分支上,然後是c1720eb commit,最後是23b75d6 commit。
二、gitcherry-pick和git rebase
git cherry-pick commit git rebase -i commit^
在使用gitcherry-pick命令時,有些情況下可能會出現衝突,此時可以使用git rebase命令進行解決。
舉個例子,假設要應用一個名為ABCDEF的commit:
$ git cherry-pick ABCDEF
如果衝突了,則必須手動解決,之後使用下面的命令將該commit修改為當前分支的一個新的基礎commit:
$ git rebase -i ABCDEF^
進入交互式的rebase操作模式, 選中並改變pick為edit,保存文件,然後執行下面的命令:
$ git cherry-pick ABCDEF $ git add $ git rebase --continue
下面的命令可以跳過已經被gitcherry-pick過的commit:
$ git cherry-pick --skip
三、gitcherry-pick衝突
在使用gitcherry-pick命令時,可能會出現衝突,這是因為當前分支和需要應用的commit之間修改的地方有衝突。
一般來說,需要手動解決衝突,然後將結果提交到當前分支上。
$ git cherry-pick ABCDEF
出現衝突後,手動解決衝突:
<<<<<<>>>>>> ABCDEF
解決完之後更新索引,繼續應用commit:
$ git add $ git cherry-pick --continue
四、gitcherry-picking
gitcherry-picking是指將一個或多個commit從一個分支中挑選出來應用到當前分支中。
當需要在當前分支上應用其他分支中的commit時,可以使用gitcherry-pick命令。
舉個例子,假設有一個名為feature的分支,要將其中的一個名為ABCDEF的commit應用到當前分支中:
$ git cherry-pick ABCDEF
其他的一些gitcherry-picking的命令:
$ git cherry-pick -n ABCDEF # 不提交commit $ git cherry-pick -e ABCDEF # 手動編寫commit信息 $ git cherry-pick -x ABCDEF # 添加origen的commit信息到新的commit信息中
原創文章,作者:BLEG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/136370.html
微信掃一掃
支付寶掃一掃