Digamos que tengo una rama llamada master
y una rama llamada upstream_lib
.¿Cómo forzar a un ancestro común en una fusión de git?
La ramificación master
tiene un subdirectorio lib
que se basa en el código que está en la rama upstream_lib
; los cambios en upstream_lib
se fusionan (con la estrategia de subárbol) a la rama master
periódicamente. El directorio lib
en master
tiene algunas modificaciones propias que no están en upstream_lib
.
Sin embargo, digamos que las dos ramas no tienen un historial en común (porque el repositorio se migró a git, por ejemplo) o la base de combinación es incorrecta porque las fusiones en upstream_lib
han sido aplastadas, ha habido alguna modificación o lo que sea.
La pregunta es: dado un nuevo conjunto de cambios en upstream_lib
, ¿cómo forzar la fusión para considerar como antepasado común una revisión específica de upstream_lib
?
Funcionó perfectamente, gracias! – Artefacto
Supongo que el único problema es que no hay historial compartido o confirmaciones con la rama upstream_lib, pero puedo soportarlo. – Artefacto
¡Me alegra oír eso! Si quisieras forzar el ancestro compartido, podrías crear un commit inicial vacío y rebase tanto 'master' como' upstream_lib' sobre eso. Suponiendo por supuesto que 'upstream_lib' es tu propia rama en lugar de remota. Sin embargo, si la importación inicial de 'upstream_lib' en el directorio' lib' era solo 'cp' en lugar de una fusión (como se describe en http://www.kernel.org/pub/software/scm/git/docs/ howto/using-merge-subtree.html), aún tendrá los problemas que describe. –