cherry-pick命令的基本用法
對于多分支的代碼庫,將代碼從一個分支轉移到另一個分支是常見需求。這時分兩種情況。一種情況是,你需要另一個分支的所有代碼變動,那么就采用合并( git merge )。另一種情況是,你只需要部分代碼變動(某幾個提交),這時可以采用 Cherry pick。
git cherry-pick <commit>
其中,是要應用的提交的哈希值或分支名。該命令會將指定的提交應用到當前分支上,并創建一個新的提交。
cherry-pick的使用場景
- 合并單個提交:當我們只想應用某個分支上的一個提交到當前分支時,可以使用cherry-pick命令,而不需要合并整個分支。
- 修復bug:當我們在一個分支上修復了一個bug,并希望將這個修復應用到其他分支上時,可以使用cherry-pick命令。
- 提取特定功能:當我們在一個分支上開發了一個新功能,并希望將該功能應用到其他分支上時,可以使用cherry-pick命令。
cherry-pick的示例
示例1:合并單個提交
a - b - c - d Master \ e - f - g Feature
假設我們有一個分支feature,其中有一個提交abc123,我們想將該提交應用到master分支上。可以使用以下命令:
切換到 master 分支$ git checkout master
git cherry-pick abc123
上面的操作完成以后,代碼庫就變成了下面的樣子。
a - b - c - d - f Master \ e - f - g Feature
這在master分支上創建一個新的提交,包含與abc123相同的更改。
示例2:修復bug
假設我們在bugfix分支上修復了一個bug,并希望將這個修復應用到develop分支上。可以使用以下命令:
git cherry-pick bugfix
這將在develop分支上創建一個新的提交,包含bugfix分支上的修復。
示例3:提取特定功能
假設我們在feature1分支上開發了一個新功能,并希望將該功能應用到feature2分支上。可以使用以下命令:
git cherry-pick feature1
這將在feature2分支上創建一個新的提交,包含feature1分支上的功能。