只合并线上某一个提交到当前分支,用 git cherry-pick,不要用 merge。下面给你完整、可直接照抄的步骤。


一、流程(本地操作,最终推到线上)

1. 先拉最新代码、切到目标分支

# 拉取线上所有分支最新信息
git fetch origin

# 切换到你要“合入”的分支(比如 main / master)
git checkout main

2. 找到线上那个提交的 hash

查看目标分支(比如 feature/xxx)的提交:

git log --oneline origin/feature/xxx

输出类似:

a1b2c3d 修复核销bug   ← 你要的这一条
e4f5g6h 优化列表样式
...

复制你需要的那个 7位 hash(a1b2c3d)

3. 把这一个提交“摘”到当前分支

git cherry-pick a1b2c3d
  • 成功:自动生成一个新 commit(hash 和线上那个不一样,但代码改动完全一样)。
  • 有冲突:会停下来让你解决冲突。

4. 冲突怎么处理(常见)

# 1. 手动改完冲突文件后
git add .

# 2. 继续 cherry-pick
git cherry-pick --continue

如果搞砸了想放弃:

git cherry-pick --abort

5. 推到线上

git push origin main

二、常用进阶

一次 pick 多个不连续提交

git cherry-pick hash1 hash2 hash3

pick 一个连续区间(含首尾)

git cherry-pick startHash^..endHash

只把代码拿过来、不自动提交(便于自己改)

git cherry-pick -n a1b2c3d

一句话总结:fetch → 切目标分支 → log 找 hash → cherry-pick → push

标签: none

添加新评论