Recientemente tuve un question answered sobre una configuración de desarrollo git multi-computadora, y la solución que obtuve allí resolvió mi situación con la rama master
, pero no ramas laterales basadas en el maestro.git sincronización de ramas rebasadas
Aquí está mi configuración actual:
A--B--C--D master
\
E--F--G--H BUG_37
BUG_37
es una rama que se está desarrollando una solución a un error de orugas opcional para una solicitud de función en el sistema, y eventualmente se fusionarán en la línea principal, pero es separarse por el momento. Con el repositorio en este estado, una sola máquina, he hecho algunos cambios en el master
rama:
A--B--C--D--I--J--K master
\
E--F--G--H BUG_37
entonces porcentualizada la rama BUG_37
en master
, para asegurarse de que está funcionando como una mejora de los cambios más actuales:
A--B--C--D--I--J--K master
\
E1--F1--G1--H1 BUG_37
Digamos que rebase tenía algunos conflictos que debían corregirse manualmente antes de que la rebase fuera definitiva. Si envío esos cambios a un repositorio remoto y ahora deseo hacer cambios en otro sistema de desarrollo que todavía tiene la configuración original, ¿cuál es la mejor manera de hacerlo? git pull --rebase
volverá a ejecutar la rebase, y tendré que pasar manualmente por los conflictos que tuve la primera vez, ¿verdad? Y si cometo un pequeño error al volver a enfrentar los conflictos, de modo que E1-H1 sea ligeramente diferente en este nuevo sistema, tendré aún más fuera de sincronización el repositorio.
Cómo tomo un repositorio local en el estado original y el repositorio remoto en el tercer estado, y hago que el repositorio local se actualice para coincidir exactamente con el repositorio remoto (los cambios trashed EH y mover el HEAD de BUG_37
a la nueva ubicación)?