同步堆叠分支的变基选项
变基会重写提交,指向这些提交的其他分支不会自动跟着移动,堆叠分支链因此断掉。--update-refs 让变基在重放提交的同时,把指向这些提交的其他分支引用一并更新,保持堆叠关系完整。该选项自 Git 2.38 起提供,也可以写成持久配置,避免每次忘记带参数。
基本信息
| 用途 | 重放提交时顺带更新指向这些提交的其他分支 |
|---|---|
| 语法 | git rebase --update-refs <上游> |
| 持久配置 | rebase.updateRefs=true |
| 版本要求 | Git 2.38 及以上 |
| 可观察行为 | 交互式待办中会出现更新引用的步骤 |
典型使用场景
- 把一整条堆叠分支链移到新主干上,省去逐个手动变基
- 底层分支被评审要求修改后,同步推进下游分支
- 维护多层依赖的特性分支时保持各层引用一致
- 团队用堆叠方式提交大改动,减少人工同步步骤
- 把它配置成默认行为,避免每次遗漏
常用示例
常用示例
git config rebase.updateRefs true # 设为默认行为
git switch feature/base # 切到链条最底层的分支
git rebase --update-refs origin/main # 变基并同步下游分支引用
git branch -vv # 核对各分支指向的新提交
git log --graph --oneline --decorate -10 # 查看各分支的位置关系选项读法
| 项 | 作用 | 说明 |
|---|---|---|
| --update-refs | 同步下游分支引用 | 命令行显式启用 |
| rebase.updateRefs | 设为默认行为 | 持久配置,等同每次带上参数 |
| 更新引用步骤 | 待办中的引用更新动作 | 可在编辑待办时调整 |
这个选项适合把一整条堆叠分支链挪到新主干上,完成之后用图形化日志核对各分支位置是否符合预期。
较早的 Git 版本不支持该参数,跨团队使用前先确认版本基线,避免同一命令在不同机器上行为不一致。没有这个选项时,只能逐个分支手动变基,步骤多也更容易漏掉其中一层。