git 分支合并实践

概念:

git rebase

git rebase 是叫变基=>更换基线=>更换commit的基线=>把其他分支上的commit应用到当前分支上。

git merge

Merge 是进行3方合并,并且把合并的结果保存成一个commit。两个分支合并默认会使用fast-forward合并策略,

二者的区别:

Merge是两个分支进行合并,二者是平等的。rebase 是把一个分支的commits 复制到另外一个分支上,不会产生Merge remote-tracking branch 'origin/main'这样的commit。

合并过程

  1. 先fetch,remote-tracking分支就有最新的commit了
git fetch --all
# git remote update -p  # 同步远程分支
  1. 再尝试进行merge,但是merge 可能会产生冲突,解决的方法是如果产生冲突就不要使用merge了,而是用rebase
git merge @{u} --ff-only
# @{u} 表示当前分支跟踪的远程分支,比如当前分支是main ,这个就相当于 origin/main
# --ff-only ,表示只使用fast-forward 策略合并,如果合并不了则报错
  1. 使用rebase 解决冲突并合并
git rebase -r @{u} 
# 将远程分支的commit 打补丁到当前分支, -r 表示保留远程commit 的信息。

git的冲突格式

<<<<<<HEAD(当前分支)
第一个分支修改的内容
======
第二个分支修改的内容
>>>>>> 其他分支

参考

posted @ 2022-06-14 11:53  oaksharks  阅读(1174)  评论(0编辑  收藏  举报