已合并master变更的my branch合并到master是否会重复commit C?
解答
不会导致master分支中出现重复的commit C,原因如下:
- Git中每个commit都拥有全局唯一的哈希标识,该标识由提交内容、父提交信息、提交时间等多个维度共同计算生成。你此前将master合并到my branch时引入的commit C,和master分支上原有的commit C是完全相同的同一个提交,并非新生成的副本。
- 当你执行将my branch合并到master的操作时,Git会自动校验两边的提交链,识别到commit C已经存在于master的提交历史中,不会重复将其写入master的提交记录。
你给出的合并后分支状态示意图存在表述偏差,正常将master合并到my branch后会生成一个新的合并提交,而非直接把C插入到D和E之间,正确的分支结构参考如下:
master: A -- B -- C \ \ my branch: D -- E -- F (合并master后的合并提交)
该偏差不影响最终合并逻辑的判定。
内容的提问来源于stack exchange,提问作者Uma U
相关产品推荐
相关产品推荐

