Git Rebase 操作指南:将 develop 分支更新到功能分支
标准操作步骤
# 1. 先切到 develop,拉取远程最新代码
git checkout develop
git pull origin develop
# 2. 切回你的 A 分支
git checkout A
# 3. 执行 rebase,将 develop 的新提交"接"到 A 分支底部
git rebase develop
执行后发生了什么?
# rebase 前:
develop: D1 → D2 → D3(新提交)
A 分支: D2 → A1 → A2
# rebase 后:
develop: D1 → D2 → D3
A 分支: D3 → A1' → A2' (你的提交被"重放"到 D3 之后)
效果:A 分支的提交历史变得非常线性、干净,没有多余的 merge commit。
如果遇到冲突
# 1. 手动解决冲突文件(编辑器会标记 <<<<<<< 等)
# 2. 解决后标记为已解决
git add .
# 3. 继续 rebase
git rebase --continue
# 如果中途想放弃 rebase,回到 rebase 之前的状态:
git rebase --abort
⚠️ 如果 A 分支提交较多,可能会多次冲突,每次解决后都要
git add+git rebase --continue。
Rebase 后推送到远程
因为 rebase 会改写提交历史,普通 git push 会被拒绝,需要强制推送:
git push origin A --force-with-lease
💡 用
--force-with-lease而不是--force,更安全——如果远程有别人新推的提交,会拒绝覆盖。
一句话速记
git checkout develop && git pull
git checkout A
git rebase develop
git push origin A --force-with-lease
⚠️ 注意事项
| 注意点 | 说明 |
|---|---|
| 不要 rebase 已共享的分支 | 如果 A 分支有其他人协作,rebase 会让别人的历史对不上 |
| rebase 前先 commit 或 stash | 确保 A 分支没有未提交的修改 |
| 冲突多时考虑 merge | git merge develop 也能更新代码,只是多一个 merge commit |
如果你的 A 分支是个人开发分支,放心用 rebase,历史更整洁 👍

浙公网安备 33010602011771号