git cherry-pick的具體使用
1. 基本介紹
git cherry-pick 用于從其他分支中選擇一個(gè)或多個(gè)特定的提交(commit)并將它們應(yīng)用到當(dāng)前分支上。
2. 使用場(chǎng)景
在我們進(jìn)行多分支開發(fā)時(shí),將代碼從一個(gè)分支轉(zhuǎn)移到其他分支是非常常見的。
若需要將一個(gè)分支中的所有代碼合并,使用 git merge。
若需要將一個(gè)分支中的部分提交 commit 變動(dòng),使用 git cherry-pick。此時(shí)引入特定更改或功能到當(dāng)前分支時(shí)非常有用。
3. 基本用法
1、選擇單個(gè)提交
git cherry-pick <commit-hash>
2、選擇一系列提交
閉區(qū)間 [ 1,3 ]
git cherry-pick <commit-hash1>^..<commit-hash3>
開區(qū)間 ( 1,3 ]
git cherry-pick <commit-hash1>..<commit-hash3>
3、選擇多個(gè)非連續(xù)提交
git cherry-pick <commit-hash1> <commit-hash3> <commit-hash5>
注意??:選擇多個(gè)提交時(shí),必須按照正確的順序進(jìn)行,提交 1 必須早于提交 2,否則命令將失敗,但不會(huì)報(bào)錯(cuò)。
4. 舉個(gè)例子??
假如我們?cè)?'feature' 分支上有以下提交歷史:
(feature):A - B - C - D - E
現(xiàn)在在 'main' 分支上:
(main):F - G
此時(shí)我們需要將 ' feature' 分支上的 C 和 D 提交應(yīng)用到 'main' 分支上,使用:
git checkout main git cherry-pick C D
這樣,'main' 分支的提交歷史變成:
(main):F - G - C' - D'
其中 C' 和 D' 是應(yīng)用于 'main' 分支的 C 和 D 提交,提交內(nèi)容是一樣的,但是分支 hash 值是不同的。
git cherry-pick 命令的參數(shù)不一定是提交的 hash 值,分支名也 ok,表示轉(zhuǎn)移該分支的最新提交。
git cherry-pick feature # 等價(jià)于 git cherry-pick E
5. 代碼沖突
如果在 cherry-pick 過程中出現(xiàn)沖突時(shí),Git 會(huì)暫停操作,讓我們手動(dòng)解決沖突。
1、解決沖突之后,需要繼續(xù) cherry-pick 過程:
git add <resolved-files> git cherry-pick --continue
2、放棄 cherry-pick 操作,回到操作前
git cherry-pick --abort
3、放棄 cherry-pick 操作,但是不回到操作前(不推薦)
git cherry-pick --quit
到此這篇關(guān)于git cherry-pick的具體使用的文章就介紹到這了,更多相關(guān)git cherry-pick內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
訪客站點(diǎn)停留時(shí)間和頁面停留時(shí)間的實(shí)現(xiàn)方案
這篇文章主要介紹了訪客站點(diǎn)停留時(shí)間和頁面停留時(shí)間的實(shí)現(xiàn)方案,需要的朋友可以參考下2015-01-01如何通過memberlist庫實(shí)現(xiàn)gossip管理集群及集群數(shù)據(jù)交互問題
這篇文章主要介紹了通過memberlist庫實(shí)現(xiàn)gossip管理集群以及集群數(shù)據(jù)交互,本文介紹了memberlist庫的簡單用法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Git遠(yuǎn)程倉庫配置SSH的實(shí)現(xiàn)(以github為例)
本文主要介紹了Git遠(yuǎn)程倉庫配置SSH的實(shí)現(xiàn)(以github為例),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07解決Git?merge時(shí)報(bào)錯(cuò):refusing?to?merge?unrelated?histories問題
在使用Git進(jìn)行分支合并時(shí),可能會(huì)遇到"refusing?to?merge?unrelated?histories"錯(cuò)誤,這是因?yàn)閲L試合并的兩個(gè)分支具有不相關(guān)的歷史記錄,解決方法包括使用--allow-unrelated-histories參數(shù)來合并分支,保留各自歷史,或者直接用一個(gè)分支的內(nèi)容覆蓋另一個(gè)分支2024-10-10