如何把本地分支 rebase 到最新的远程 main

同步主分支最新代码到功能分支:git fetch origin 后 git rebase origin/main(在功能分支上执行),冲突逐个解决后 git rebase --continue。已推送过的分支 rebase 后需 --force-with-lease 强推。

最佳实践
Git 分支协作与合并示意

两步:先 git fetch origin 拿到远程最新,然后在你的功能分支上 git rebase origin/main——你的提交会被"搬"到 main 最新提交之后,历史保持线性。冲突逐个解决,git rebase --continue 继续。

完整流程

git checkout feature-x
git fetch origin
git rebase origin/main

# 有冲突时:
# 1. 编辑冲突文件,解决标记
# 2. git add <文件>
# 3. git rebase --continue(放弃用 --abort)

git push --force-with-lease      # 若该分支之前推送过

rebase vs merge 的选择

rebase origin/main merge origin/main
历史 线性干净 多一个合并提交
提交哈希 重写 不变
已推送分支 需强推 直接 push
适用 个人功能分支 共享/长期分支

防患于未然

  • 功能分支生命周期短一点,rebase 冲突就少;
  • 每天开工前 rebase 一次,小步同步好过攒一周大合;
  • 不确定时 git branch backup 先备份再 rebase。

常见问题(FAQ)

Q:rebase 到一半后悔了?

git rebase --abort 完全回到 rebase 前的状态,无副作用。

Q:同一个冲突在多个提交里反复出现?

启用 rerere(git config --global rerere.enabled true),Git 记住你的冲突解法,相同冲突自动应用。

Q:强推后同事的本地分支怎么办?

他们 git fetch 后 git reset --hard origin/feature-x 对齐。所以共享分支别 rebase,用 merge。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台