git merge

git merge [<commit> ...]的作用是将指定分支上(可以是多个分支)的修改, 合并到当前分支上来.

注解

两个分支有共同的父节点, 将被合并的分支相对于共同父节点的修改合并到当前分支上来.

合并的基础: 有共同的父节点.

例如: 现在有两个分支AB, 当前分支是A, 执行git merge B就是将B分支上当前commit的修改合并到A分支上来. 更具体的说, 就是将B分支上当前commit相对于共同父节点的修改合并到A分支上来.

git merge --abort 只有当git merge产生了冲突时才能使用. 该命令会终止merge, 并尝试使版本库回到merge之前的状态. 但是, 如果在merge时, 有未提交的修改, 那么git merge --abort可能无法重构merge之前的状态. 所以, 在执行merge时, 应该尽量保证没有未提交的修改.

快进式合并

通常, 使用git merge合并分支之后, 会生成一个新的的合并commit. 但是, 如果被合并的分支是从当前分支分叉出来的, 可以使用快进式合并(Fast-Forward).

注解

所谓快进式合并, 就是使当前分支指针指向被合并的分支的当前commit, 而不用生成一个合并commit.

当可以使用快进式合并时, 默认就会使用快进式合并; 如果不想使用快进式合并, 而是生成一个合并commit, 需要加上--no-ff选项.