Git (Hub) combinación de 3 vías, parche

¿Hay alguna forma de fusionar (interdiff) conflictos automáticamente entre 2 twigs principales y una twig base?

Estaba tratando de hacerlo en el nivel de parche

  • VersionA es mi base

  • La versión B está ramificada de VersionA

  • La versión B tiene un mod adicional aplicado, Base + ModB

  • VersionC está ramificado de VersionA

  • VersionC tiene un mod adicional aplicado, Base + ModC

Manualmente aplicando parches, puedo derivar un parche A: B y A: C, y aplicarlos a la versión A secuencialmente. Sin embargo, si los dos entran en conflicto en las áreas en las que se aplican (como editar la misma área), se rompen.

He probado varias herramientas como interdiff y combinationiff para crear un parche combinado manualmente sin éxito (estoy en Windows e interdiff es compatible con cygwin, pero no sé si el UNC es un problema, hasta ahora no lo hago). piense así), especificando tales como salidas como Unified vs Contextual debido a requisitos interdiff / combinados.

Entonces … ¿hay alguna manera de que pueda hacer una Versión A como mi Base, y un cambio combinado de la versión A: B && A: C como mi cabeza? ¿Y hacer algún tipo de request de extracción de 3 vías?

Si surge algún conflicto, espero que Git pueda abordarlos de forma inteligente haciendo infame >>>> y ===== y <<<<< fusión de conflictos, que es completamente aceptable en este momento.

En última instancia, me gustaría encontrar una manera de hacerlo en un nivel de parche mediante la combinación de parches. Veo que git (hub) tiene algunas opciones para trabajar con parches de 3 vías y parches de correo electrónico con git apply y git patch y git format-patch.

esto también ayudó: Git pull da conflictos con la estrategia del pulpo

A pesar de que no estoy tirando desde el control remoto y de tirar, se fusiona cuando se trabaja localmente (el command funciona exactamente igual).

Lo más cercano sería una fusión de pulpo (fusión de múltiples HEAD):

git merge BC 

Tenga en count que el order puede ser importante: " Git pulpo fusionar order de múltiples twigs ".


El OP thistleknot agrega en los comentarios :

La fusión no funcionó inicialmente hasta que supuse que me había separado de un ancestro común en el "punto equivocado" más o less.
No lo sabía hasta que miré los files de salida merge*.* Y vi que cada file de fusión era un file fuente. Uno de la versión B y la versión C y el ancestro común de B y C Una vez que lo descubrí, pude hacer algo más de ramificación mágica, y la fusión funcionó, con <<< y ====