【git】rebase和merge

【rebase(变基)】

变基实现方式并不是合并,而是重放,既将分支A的提交在分支B上重新提交一遍

#如果不提供 源分支参数,则表示源分支为当前分支
git rebase <目标分支>  [源分支]

# 撤销rebase
git rebase --abort

# 如果有冲突(处于REBASE状态),则解决冲突后继续执行如下命令
git  add .
git rebase --continue

# 如果还有冲突(处于REBASE状态),则继续解决冲突,没有冲突后则push到远程仓库
git push origin

【git】rebase和merge_第1张图片

冲突标识
【git】rebase和merge_第2张图片

变基的场景

从上文我们可以得出结论,变基最大的特点是可以使提交历史称为线性,那么这么做的好处或者适用于什么场景呢?在给出结论之前,我们先要明确,或者牢记一点:

变基要在自己本地仓库中拉出来的分支使用,不要对本地仓库外有副本的分支执行变基

也就是说变基本质上是一个完全在本地仓库进行的操作(这是DCSV特有的),我们往往是在本地执行完成变基操作后,再向远程仓库push。这样做,避免了其他合作者的处理冲突,其他合作者只需要利用git merge自身的fast-forward即可完成Merge的工作。

综上,变基适用于多人线上合作开发的场景,避免其他合作者处理冲突,例如github上开源项目的维护。公司内部因为地理上、组织上的便利性,可以酌情使用变基。

【merge(合并)】

【git】rebase和merge_第3张图片

你可能感兴趣的:(计算机语言/相关工具)