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分支上的功能。