git --- cherry pick

git --- cherry pick

  • [cherry pick](#cherry pick)

cherry pick

  • Cherry Pick 是 Git 中的一个操作,它允许你选择某个分支的某次(或多次)提交,并将其应用到当前分支,而不会合并整个分支的所有更改。

cherry pick 的作用

  • 只提取某个特定的提交(而不是整个分支的改动)。
    适用于修复 Bug 或移植某个功能,而不想合并整个分支。
    避免不必要的冲突,只引入需要的更改。

使用场景

  • 修复 Bug:如果某个 Bug 在 main 分支修复了,但 dev 分支也需要这个修复,可以直接 cherry-pick 这个提交。
  • 部分功能移植:某个功能在 feature-A 分支开发完成,但只想提取其中几个关键提交到 main 分支。
  • 撤销错误的提交:如果某个提交被误合并到错误的分支,可以用 cherry-pick 把它移到正确的分支 (但是并不能删除错误的提交)

基本用法

bash 复制代码
git cherry-pick <commit-hash>
## <commit-hash> 是你想要应用的提交的哈希值(如 a1b2c3d)。
示例

示例

  • 查看提交历史,找到要应用的提交:
bash 复制代码
git log --oneline
# 输出示例:
# a1b2c3d (HEAD -> main) Fix login bug
# e4f5g6h Add new feature

切换到目标分支(如 dev):

bash 复制代码
git checkout dev

执行 cherry-pick:

bash 复制代码
git cherry-pick a1b2c3d
# 这样,Fix login bug 这个提交就会被应用到 dev 分支。
选项 作用
-n (--no-commit) 只应用更改,但不自动提交
-e (--edit) 在应用提交前允许修改提交信息
-x 在提交信息里追加来源提交的哈希(推荐用于追踪来源)
--abort 如果发生冲突,放弃 cherry-pick 操作
--continue 解决冲突后继续 cherry-pick

注意事项

  • 可能引发冲突:如果目标分支和原提交的上下文不同,可能需要手动解决冲突。
  • 慎用:过度使用 cherry-pick 可能导致提交历史混乱,建议在必要时使用。
  • 与 merge 的区别:merge 合并整个分支的改动,而 cherry-pick 只挑部分提交。
    总结

Summary

  • git cherry-pick 是一个灵活的工具,适合精准移植某个提交,而不是整个分支的改动。合理使用可以提高开发效率,但滥用可能导致代码历史难以维护
相关推荐
妙娲种子24 分钟前
配置git/创建第一个智能相册保存快照
git
what_201825 分钟前
git一个账号在两台电脑登录 出现不同用户名
git
困鲲鲲32 分钟前
ROS2系列 (13) : 常用Git指令入门(本地Git)
git·ros2
☆cwlulu5 小时前
git分支管理详解
开发语言·git·青少年编程
脑子不好的小菜鸟8 小时前
用vscode连接远端ubuntu无法git push,vscode无法连接centos
git·vscode·ubuntu·centos
__Witheart__9 小时前
Git 如何修改已有的分支名称
git
秦jh_12 小时前
【git】分支管理
git
百锦再15 小时前
第5章 所有权系统
运维·git·python·eclipse·go·github·负载均衡
DW_DROME20 小时前
git worktree (镜像站加速)
git
qq_5470261791 天前
OAuth 2.0 安全授权
git·安全·github