Git cherry-pick 是一个强大的命令,它允许你将某个分支上的特定提交应用到当前分支。与合并(merge)或变基(rebase)不同,cherry-pick 让你可以精确选择需要的提交,而不是引入整个分支的所有更改。
当你只需要某个分支上的特定功能或修复时
当合并整个分支不合适时
当你想将某个提交应用到多个分支时
当你想在不合并的情况下测试某个特定更改时
首先,切换到包含你想要获取的提交的分支:
bashgit checkout 源分支名
然后查看提交历史,获取提交的哈希值:
bashgit log --oneline
这会显示简化的提交历史,例如:
208251d5 (HEAD -> feature-branch) 添加新功能 ec8b5002 修复登录bug a1b2c3d4 初始化项目
bashgit checkout 目标分支名
选择你想要应用的提交(可以一次选择多个):
bashgit cherry-pick ec8b5002 208251d5
如果 cherry-pick 过程中出现冲突:
git add
标记已解决的文件git cherry-pick --continue
继续如果想取消 cherry-pick:
bashgit cherry-pick --abort
..
选择一系列提交bashgit cherry-pick A^..B
-n
选项可以在应用更改后不自动提交bashgit cherry-pick -n ec8b5002
编辑提交信息:使用 -e
可以编辑提交信息
签名提交:使用 -s
可以添加签名
Cherry-pick
会创建新的提交,即使内容相同,哈希值也会不同cherry-pick
可能导致历史混乱merge
或 rebase
可能更合适Git cherry-pick 是一个精确获取特定更改的强大工具。通过遵循上述步骤,你可以轻松地将需要的提交从一个分支应用到另一个分支,而无需合并整个分支。记住要谨慎使用,以保持项目历史的清晰和可维护性。
希望这篇教程对你有所帮助!如果有任何问题,欢迎在评论区留言讨论。
本文作者:糀飞
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!