合并流程
在执行 git merge 命令时,Git会首先尝试使用 Fast-forward 模式合并,如果合并失败,会采用三方合并模式合并。
例子
背景
有一个git仓库,在master分支上创建了一个dev分支,在dev分支上提交了两个版本,dev分支上又新建了demo分支,dev和demo指针都指向最新提交的版本。
Fast-forward 合并
如果只有一个分支上有最新提交,另一个分支未改动
将demo合并到dev分支上时,在dev分支上执行:
git merge demo
dev指针会直接指向demo的最新提交
三方合并
两个分支上都有新的提交
如果将demo分支提交到dev分支上,先切换到dev分支再执行
git merge demo
合并后dev分支上会产生一个新提交,dev指针指向合并的提交,而demo指针会保持在合并前的提交上。
谁请求的合并操作,就在谁那里合并。
如果在demo分支上执行合并操作
新提交会产生在demo分支上,demo指针指向合并的提交,dev指针保持不变