Join two or more development histories together
用于将两个或两个以上的开发历史加入(合并)一起。
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
如果你要合并指定分支到当前分支,branch
为需要合并到当前分支的名称。
git merge <branch1> <branch2> ...
当当前分支与正在合并的分支相比没有额外提交时,可能会发生快速向前合并,Git 首先尝试执行最简单的选择 Fast-forward 模式合并不会创建新的提交,而是合并当前分支中合并的分支上的提交。
现在,在 dev
分支上所做的所有更改都在 master
分支上可用。那么,No-fast-foward 是怎么回事?
如果您当前的分支与要合并的分支相比没有任何额外的提交,那就太好了,但不幸的是,这种情况很少发生!如果我们在当前分支上提交了要合并的分支没有的更改,git 将执行 No-fast-foward 合并。使用 No-fast-foward 合并,Git 在活动分支上创建一个新的合并提交。提交的父提交指向活动分支和要合并的分支!
合并冲突修复的过程 ,动画演示如下:
完美的合并!🎉 主分支现在包含我们对 dev
分支所做的所有更改。
场景:假设有一个分支 A,像 master 分支提交 PR,然后发生无法自动解决的冲突,PR 提示不能执行 merge 合并
Pull Request / Merge Request 发生冲突时的解决方法:
checkout
检出并切换到 A 分支,pull
拉取更新到最新代码merge
合并远程分支 master
merge
权限的人进行 merge
即可参考资料: