git cherry-pick

介紹

git cherry-pick 可以選擇某一個(gè)分支中的一個(gè)或幾個(gè)commit(s)來(lái)進(jìn)行操作。例如,假設(shè)我們有個(gè)穩(wěn)定版本的分支,叫prd,另外還有個(gè)開(kāi)發(fā)版本的分支dev,我們不能直接把兩個(gè)分支合并,這樣會(huì)導(dǎo)致穩(wěn)定版本混亂,但是又想增加一個(gè)dev中的功能到prd中,這里就可以使用cherry-pick了,其實(shí)也就是對(duì)已經(jīng)存在的commit 進(jìn)行再次提交。

這個(gè)流程也適用于hotfix流程, 比如在prd分支上提交個(gè)bugfix,需要提交到dev分支。

用法

git cherry-pick <commit id>

注意:當(dāng)執(zhí)行完 cherry-pick 以后,將會(huì)生成一個(gè)新的提交;這個(gè)新的提交的哈希值和原來(lái)的不同,但標(biāo)識(shí)名一樣;

示例

把prd上的某個(gè)commit合并到dev。

  1. 找到某次提交到prd分支的的commit id - 29259ee, 執(zhí)行如下命令
$ git checkout dev
$ git cherry-pick 29259ee   ## 這個(gè) 29259ee,位于prd分支中
  1. 接下來(lái)正常commit, 如果有沖突就手工解決。

若提示:

error: a cherry-pick or revert is already in progress
hint: try "git cherry-pick (--continue | --quit | --abort)"
fatal: cherry-pick failed

則執(zhí)行對(duì)應(yīng)操作:

git cherry-pick --continue
git cherry-pick --quit
git cherry-pick --abort

命令集合

git cherry-pick <commit id>:單獨(dú)合并一個(gè)提交
git cherry-pick -x <commit id>:同上,不同點(diǎn):保留原提交者信息。
Git從1.7.2版本開(kāi)始支持批量cherry-pick,就是一次可以cherry-pick一個(gè)區(qū)間的commit。
git cherry-pick <start-commit-id>..<end-commit-id>
git cherry-pick <start-commit-id>^..<end-commit-id>
前者表示把<start-commit-id>到<end-commit-id>之間(左開(kāi)右閉,不包含start-commit-id)的提交cherry-pick到當(dāng)前分支;
后者有"^"標(biāo)志的表示把<start-commit-id>到<end-commit-id>之間(閉區(qū)間,包含start-commit-id)的提交cherry-pick到當(dāng)前分支。
其中,<start-commit-id>到<end-commit-id>只需要commit-id的前6位即可,并且<start-commit-id>在時(shí)間上必須早于<end-commit-id>
注:以上合并,需要手動(dòng)push代碼。

參考

鏈接:http://www.itdecent.cn/p/08c3f1804b36

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git cherry-pick可以選擇某一個(gè)分支中的一個(gè)或幾個(gè)commit(s)來(lái)進(jìn)行操作。例如,假設(shè)我們有個(gè)穩(wěn)定...
    _Justin閱讀 173,669評(píng)論 7 88
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,870評(píng)論 1 26
  • 打開(kāi)微信對(duì)話框 想對(duì)無(wú)話不說(shuō)的朋友打三個(gè)字:好!無(wú)!聊! 打完我又刪除了 因?yàn)橛腥丝偸歉嬖V我:人生終究是一個(gè)人的人...
    咩的口水地閱讀 1,270評(píng)論 0 0

友情鏈接更多精彩內(nèi)容