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 是一个灵活的工具,适合精准移植某个提交,而不是整个分支的改动。合理使用可以提高开发效率,但滥用可能导致代码历史难以维护
相关推荐
ashane131438 分钟前
Redis的一些高级指令
redis·git·bootstrap
互联网搬砖老肖11 小时前
Git Fetch 和 Git Pull 的区别
git
涛ing11 小时前
【Git “fetch“ 命令详解】
linux·c语言·c++·人工智能·git·vscode·svn
ACGkaka_14 小时前
Git(八)如何在同一台电脑登录两个Git
git
漫天转悠18 小时前
本地Git仓库SSH同步到Gitee(码云)仓库的完整指南(附:SourceTree同步仓库)
git·gitee·ssh
一枚前端小姐姐19 小时前
git merge - 本地解决无权限dev分支的合并冲突
前端·git
froxy21 小时前
Forking Workflow 详解
git
蜉蝣之翼❉21 小时前
git 对比两种优化方法的性能
git
Archie_IT1 天前
5分钟搞定pichome本地部署方案并配置远程在线多端同步访问权限
网络·git·http·docker
幸福摩天轮1 天前
git原理浅析
git