git rebase 是一个充满争议的命令, 推崇者赞不绝口, 反对者避而远之;
命令方式
1 | # 在目标分支上实施 rebase |
1 | # 作为选项使用 |
配置方式
1 | # 分支级别配置 |
具体场景实战
如果线上有人发布完成, 主干分支已更新, 此时另一个待发布的分支想要 rebase master, 步骤如下:
(1) 提前拉取最新 commit, 保证本地 master 和 origin/master 同步,
并保证当前分支是需要 rebase 的目标分支:
1 | git pull origin master |
(2) 执行 rebase:
1 | git rebase master |
(3) 对每个 commit 处理冲突:
1 | foreach (commit in target_branch from forked_position) { |
(4) rebase 结束, 分三种情况:
rebase 成功, 推送变更:
1
2# 一定要加 --force, 否则提示与 orgin 分支冲突
git push --force origin target_branch中途不想再继续 rebase, 直接取消, 没有副作用, 恢复如初:
1
git rebase --abort
rebase 终止:
git rebase --quit