Git 提交相关(cherry-pick)
1️⃣ 最基础用法
git cherry-pick <commit-hash>
git cherry-pick a1b2c3d
效果:
- 把
a1b2c3d那次提交的改动 - 复制一份
- 提交到当前分支
⚠️ commit hash 变了(是新提交)
2️⃣ 一次 pick 多个提交
连续提交
git cherry-pick A^..D
不连续提交
git cherry-pick A B C
3️⃣ 常用高频参数(很重要)
✅ 不自动提交(先看看)
git cherry-pick -n <commit>
适合:
- 想改点东西
- 想把多个 commit 合成一个
✅ 保留原作者信息
git cherry-pick -x <commit>
提交信息里会自动加:
(cherry picked from commit xxxx)
👉 公司里强烈推荐
✅ 只 pick 改动,不要提交信息
git cherry-pick -e <commit>
会让你编辑 commit message
4️⃣ 冲突了怎么办(必会)💥
发生冲突时
# 手动解决冲突后
git add .
git cherry-pick --continue
放弃这次 pick
git cherry-pick --abort
5️⃣ 反向 cherry-pick(撤销某次提交)
git cherry-pick -n <commit>
git reset
⚠️ 或更推荐:
git revert <commit>
7️⃣ 常见坑(踩过的都懂)
❌ pick 顺序错 → 冲突爆炸
❌ pick 已被 merge 的提交 → 重复代码
❌ 在脏工作区 pick → 先 git status
🧠 两种状态对照表
| 目标 | 命令 |
|---|---|
| 放到暂存区,不提交 | git cherry-pick -n cc |
| 放到工作区 | git cherry-pick -n cc → git restore --staged . |
| 再自己提交 | git commit -m "xxx" |
| 合并多个提交为一个 | 多次 cherry-pick -n |
⚠️ 冲突时怎么处理?
-
解决冲突
-
如果你只是想要改动,不想提交:
git add . git cherry-pick --continue👉 这一步只是“完成应用 patch”,不会生成 commit
-
放弃整个操作:
git cherry-pick --abort
&spm=1001.2101.3001.5002&articleId=158427420&d=1&t=3&u=dcd3f9f391514fb397f5320d8c71e2fc)
980

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



