分支merge操作
通常dev开发分支合格上线之后,就要合入到master主线分支。

可以用cherry-pick的方式,将dev分支上的提交依次cherry-pick到master分支再合入。但不提倡这种方式,不仅费时费力还容易遗漏提交。
git提供了合并分支的merge操作,将两个或多个开发历史合并到一起。

merge命令有许多可选项,记不住很正常,真到需要用的时候,用git help merge在浏览器打开此命令的详细文档。
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[--no-verify] [-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
[--[no-]allow-unrelated-histories]
[--[no-]rerere-autoupdate] [-m <msg>] [-F <file>]
[--into-name <branch>] [<commit>…]
git merge (--continue | --abort | --quit)合并分支的merge操作很方便,举个例子。代码仓库中有两个分支:master和dev。在执行操作之前之前先pull一下,将本地代码更新至最新,对开发来说这是一个比较好的习惯。
git pull --rebase先checkout切换到master分支,即需要合入的目标分支:
git checkout master在master分支下执行下面的命令,参数为待合入分支名dev,将另外一个分支dev中的提交合入当前的master分支:
git merge dev有冲突的话需要先处理冲突,最后生成一笔merge提交,只需要合入这一个提交即可把dev分支中的提交都合入master分支。如果遇到无法merge的情况,可以尝试加上--no-ff参数创建合并提交。
对merge命令印象深刻的一次:曾经有dev1和dev2两个开发分支并行开发。dev2先开发完,于是将其merge到dev1上;后来又将dev1分支开发的功能merge到了dev2上;这样反复横跳,最后没有merge可merge(这是及其不规范的操作)。
相关资料:
git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging


