【rebase(变基)】
变基实现方式并不是合并,而是重放,既将分支A的提交在分支B上重新提交一遍
#如果不提供 源分支参数,则表示源分支为当前分支
git rebase <目标分支> [源分支]
# 撤销rebase
git rebase --abort
# 如果有冲突(处于REBASE状态),则解决冲突后继续执行如下命令
git add .
git rebase --continue
# 如果还有冲突(处于REBASE状态),则继续解决冲突,没有冲突后则push到远程仓库
git push origin
冲突标识
变基的场景
从上文我们可以得出结论,变基最大的特点是可以使提交历史称为线性,那么这么做的好处或者适用于什么场景呢?在给出结论之前,我们先要明确,或者牢记一点:
变基要在自己本地仓库中拉出来的分支使用,不要对本地仓库外有副本的分支执行变基
也就是说变基本质上是一个完全在本地仓库进行的操作(这是DCSV特有的),我们往往是在本地执行完成变基操作后,再向远程仓库push。这样做,避免了其他合作者的处理冲突,其他合作者只需要利用git merge自身的fast-forward即可完成Merge的工作。
综上,变基适用于多人线上合作开发的场景,避免其他合作者处理冲突,例如github上开源项目的维护。公司内部因为地理上、组织上的便利性,可以酌情使用变基。