git 分支合并实践
概念:
git rebase
git rebase 是叫变基=>更换基线=>更换commit的基线=>把其他分支上的commit应用到当前分支上。
git merge
Merge 是进行3方合并,并且把合并的结果保存成一个commit。两个分支合并默认会使用fast-forward
合并策略,
二者的区别:
Merge是两个分支进行合并,二者是平等的。rebase 是把一个分支的commits 复制到另外一个分支上,不会产生Merge remote-tracking branch 'origin/main'
这样的commit。
合并过程
- 先fetch,remote-tracking分支就有最新的commit了
git fetch --all
# git remote update -p # 同步远程分支
- 再尝试进行merge,但是merge 可能会产生冲突,解决的方法是如果产生冲突就不要使用merge了,而是用rebase
git merge @{u} --ff-only
# @{u} 表示当前分支跟踪的远程分支,比如当前分支是main ,这个就相当于 origin/main
# --ff-only ,表示只使用fast-forward 策略合并,如果合并不了则报错
- 使用rebase 解决冲突并合并
git rebase -r @{u}
# 将远程分支的commit 打补丁到当前分支, -r 表示保留远程commit 的信息。
git的冲突格式
<<<<<<HEAD(当前分支)
第一个分支修改的内容
======
第二个分支修改的内容
>>>>>> 其他分支