第一章:为什么你需要掌握Cherry-Pick?
作为一名开发者,你是否曾经遇到过这种情况:在feature分支上开发了一个很棒的功能,修复了一个棘手的bug,或者写了一个实用的工具函数,突然意识到:“这个提交在主分支或者其他分支上也急需!”
传统的做法可能是合并整个分支,但这样可能会带入不需要的代码,或者因为分支差异太大而导致合并冲突。这时候,Git Cherry-Pick就像一位精准的代码快递员,帮你把指定的提交"快递"到当前分支,只取所需,不多不少。
Cherry-Pick是什么?
Git Cherry-Pick命令允许你选择某个分支上的一个或多个提交,然后将它们应用到当前分支上。这就像是在一棵樱桃树上只摘下最成熟、最甜美的樱桃,而不是把整棵树的樱桃都摘下来。
与merge和rebase不同,cherry-pick提供了更精细的控制能力:
- Merge:合并整个分支的所有更改
- Rebase:重新应用整个分支的一系列提交
- Cherry-pick:只选择并应用特定的提交
第二章:Cherry-Pick基础入门
基本语法
Cherry-pick的基本语法非常简单:
git cherry-pick <commit-hash>
其中,<commit-hash>是你想要应用的提交的哈希值。你也可以一次选择多个提交:
git cherry-pick <commit-hash1> <commit-hash2> <commit-hash3>
或者使用范围选择:
git cherry-pick <start-commit-hash>^..<end-commit-hash>
工作流程示例
假设我们有以下提交历史:
* 1a2b3c4 (feature) 添加新功能C
* 5d6e7f8 添加新功能B
* 9a0b1c2 添加新功能A
* a1b2c3d (main) 初始提交
现在我们在main分支上,只想应用feature分支上的"添加新功能B"提交:
# 切换到main分支
git checkout main
# 使用cherry-pick应用特定提交
git cherry-pick 5d6e7f8
执行后,提交历史变为:
* d4e5f6a (main) 添

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



