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