引言
关于git和merge本文不做讲解,想学习的可以看阮一峰大大的git教程
本文主要讨论下面的commit记录什么时候出现
(下称目标分支:待被合并的分支,多为master;自己分支:准备合并到目标分支的分支)
是否出现原则
自己分支是否对目标分支以前的提交时间线有改动
即如果自己分支的提交记录与目标分支的现有记录完全重合时,提交不会产生merge记录;如果提交是对目标分支历史的插入操作,则会新产生一条merge记录。
意义
merge的意义就在于多个分支协作时能够统一。
假如在当开发者B(5月20日)要把他在自己分支上提交的X commit(5月10日)merge到目标分支时,发现目标分支上有一个开发者A提交的Y commit(5月15日)。此时合并后,目标分支上的记录为Y->X。从目标分支的记录角度,是没问题的。
但是对开发者A来说,没人告诉他有人对目标分支的历史进行了修改,他也就不知道要拉代码。如果把对分支历史记录的改动作为一个新commit,就可以告诉A拉取最新的代码,并且A只要关注最新的merge commit,而不需要关注历史记录。