书
Pro Git, 2nd Edition
第289页解释了虚假合并的用例:
这通常有助于在以后进行合并时欺骗Git,使其认为分支已经合并。例如,假设你分支了一个
release
分支,并已对其进行了一些工作,您希望将其合并回您的
master
分支在某个时候。与此同时,一些bug修复
主人
需要背到你的
释放
支。您可以将bugfix分支合并到
释放
分支和
merge -s ours
同一个分支进入你的
主人
分支(即使修复程序已经存在),因此稍后合并时
释放
再次分支,没有来自错误修复的冲突。
这段话对我来说毫无意义。(记住,我从来没有把GitIm读这本书作为第一次介绍。)
首先,它谈论的是将bugfix合并到
释放
分支和
主人
分支,但它说bug修复已打开
主人
我认为这意味着它是直接提交给
主人
。对于是否有单独的bug修复分支,这似乎是自相矛盾的。
也许吧
主人
这里的意思是它已经被合并到
主人
,但这似乎意味着我们试图伪造并将同一个bug修复分支合并到
主人
我们之前实际上已经合并了。这似乎得到了修复已经存在的断言的强化。但是,将同一分支不变地合并到
主人
两次?为什么第一次不足以解决所谓的问题?
此外,无论bug修复是如何进入的
主人
,
为什么合并时会产生冲突
释放
?
修复应该是合并两侧的相同代码行,所以直观地说,我希望这次合并在这里不会发生冲突,也不会诉诸任何诡计。
我几乎想知道这本书是不是想说
释放
将被背进
主人
.我读这句话的意思是错误修复是精心挑选的
主人
。即使在这种情况下,我仍然不明白为什么需要虚假合并,因为同样,错误修复行应该在最终合并的两侧匹配
释放
进入之内
主人
,所以不应该产生冲突。
最后,无论如何,我甚至不清楚虚假合并将如何解决合并冲突。据我所知,虚假合并既不会改变最终问题合并的共同祖先,也不会改变其两侧的内容,因此根本不应该改变其结果。
有人能更清楚地解释一下,也许用图表,这本书在这里想表达什么吗?或者,如果我误解了什么,请指出那是什么?