参考文档 Git Book 中文版 - rebase

有一个公共分支 dev 作为开发分支
然后基于 dev 创建了新分支 —— mywork
origin
在新分支上做了一些修改,提交了一些commit
但同时也有人在dev 分支上做了提交

这说明两个分支分叉了

我们要把自己的修改合并到dev 分支
然后我们可以使用 merge 操作, 但这样会创建一个新的commit(merge commit)

1
2
git checkout dev
git merge mywork


所以我们可以用rebase,创建一个线性 历史记录

1
2
git checkout mywork
git rebase dev


在rebase的时候,可能mywork分支和dev分支会有冲突(conflict)
这时,git 会停止rebase,进入一个临时分支,让你解决冲突
解决冲突后,用git add 命令更新,无需commit
然后

1
git rebase --continue

Git 会继续应用(apply)余下的commit,然后回到mywork分支
这时候,你再查看git log 的时候,已经你的commit已经基于dev分支的commit。

在任何时候,你可以用–abort参数来终止rebase的行动,并且”mywork” 分支会回到rebase开始前的状态。

1
git rebase --abort