Desde la twig principal creé una twig "topicA" para un proyecto que es solo un subset de los files originales con algunos nuevos files agregados. Para hacer esto, creé la twig, eliminé los files innecesarios, agregué algunos files nuevos y me comprometí.
Luego creé una twig de function "topicB" e hice algunos cambios.
E--H--I topicA / / K--L--M topicB / / A--B--C--D--F--J--N master
Quiero que los cambios en "topicB" se apliquen a "topicA". El tree resultante se vería así:
E--H--I topicA / K--L--M topicB / A--B--C--D--F--J--N master
He intentado usar rebase para esto pero no he podido get el resultado deseado.
git checkout topicA git rebase topicB
Esto está dando como resultado una combinación y algunos conflictos que resolví, pero no todos los cambios del tema B están presentes en el nuevo tema A.
También intenté
git rebase --onto topicA master topicB
pensando que esto aplicaría los cambios del tema B al tema A, siendo el maestro el antepasado común, pero esto terminó cuando yo estaba en la twig del tema B con cambios.
Después de rebase el maestro con los cambios del tema B, me gustaría poder volver a establecer la database del tema maestro para continuar obteniendo cambios en los files importantes para el tema A.
¿Es posible realizar una bifurcación desde el maestro y luego rebasear desde otra twig que también se ramificó desde el maestro? ¿Estoy usando el rebase incorrecto? Combinar sería mejor para este caso de uso?
Gracias
Actualización La rebase descrita por @VonC funciona y ahora tengo un tree como:
E--H--I topicA / K--L--M--O topicB / A--B--C--D--F--J--N master
Cuando trato de volver a bajar el tema A del tema B de nuevo para get el nuevo cambio que ejecuté
git checkout topicA git rebase topicB
Pero me está pidiendo que resuelva conflictos. Ya resolví reubicar el tema A y desviarlo de M. ¿Cómo volver a aplicar el tema A al temaB 'O' sin ocuparme de todos los conflictos que ya resolví?
El rebase --onto
debe usar la confirmación exacta de la cual se creó el tema A:
git rebase --onto topicB D topicA
Vea ese ejemplo para la ilustración.
Eso conseguiría:
E'--H'--I' topicA / K--L--M topicB / A--B--C--D--F--J--N master
Entonces, sí, puedes volver a topicA
base de topicA
en la parte superior de master
:
git checkout topicA git rebase master