Git:修复影响两个分支的错误


16

我将我的Git回购基于一个成功的Git分支模型,并且想知道如果遇到这种情况会发生什么:

在此处输入图片说明

假设我在两个要素分支A和B上进行开发,并且B需要来自A的代码。X节点在要素A中引入了一个错误,该错误会影响分支B,但是在合并了要素A和B的节点Y上未检测到此错误,在再次分支并进行下一次迭代之前进行了测试。

结果,功能B的工作人员在节点Z上发现了错误。在此阶段,已确定需要进行错误修复。此修复程序应同时应用于两个功能,因为使用功能A的人员还需要修复该错误,因为该错误是其功能的一部分。

是否应该从最新的功能部件A节点(从节点Y分支的一个部件)创建一个错误修正分支,然后与功能部件A合并?在将这两个功能合并到一起之后,再进行开发和测试,然后再进行分支?

问题是它需要两个分支合并才能解决此问题。由于功能部件B不接触功能部件A中的代码,是否有办法通过实施修订并仍允许功能部件B分支保持未合并但功能部件A具有固定代码的方式来更改节点Y上的历史记录?

密切相关:Git错误分支约定


6
您不能只解决“开发”分支中的错误,然后将其合并到功能A和功能B中吗?
tdammers 2012年

嗯,那似乎是最好的。功能A中可能存在合并冲突,但我认为这是不可避免的。
Aram Kocharyan 2012年

如果您没有在'development'分支上进行任何进一步的开发,并且该错误修正没有在'feature A'分支上进行任何更改,那么您将不会遇到任何冲突。
tdammers 2012年

Answers:



5

可以说,A或X中没有错误。请在找到它的分支B中修复该错误。该修补程序将在事件的正常过程中传播到X和A。


谢谢,这也是可行的,只要错误不会影响功能A.
亚兰·科恰良

0

尽管git在Mercurial中不是很流行的工作流,但在Mercurial中很流行的工作流将是更新到修订版X,在那里修复错误(如X2),然后重做合并Y(在Mercurial中应该是一对合并)。

实际上,此工作流程更容易,git因为每个人都从切换YY2之后,对原始文件的引用Y将丢失,最终将被垃圾回收。在这种情况下,hg您将不得不手动删除那些提交以整理您的存储库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.