Actualmente estoy trabajando en una sucursal y quiero actualizarlo con el maestro. Así que intenté hacer una rebase.
twig actual en la que estoy trabajando: crtdev
Intenté hacer rebase,
git checkout crtdev git rebase master // used diff mergetool to solve merge issues git rebase --continue
Ahora dice, aplicando: "todos los posts de compromiso que he hecho en esa twig"
Pero después de eso, ¿qué hay que hacer?
Revisé el repository y no hay cambios y cuando dije el git status
, veo que los files fusionados aparecen con filename.html.orig
– editar Cuando ejecuto un git rebase --continue
me sale este post No rebase en curso?
Al ejecutar el Git status
veo este post
# On branch crtdev # Your branch and 'origin/crtdev' have diverged, # and have 33 and 8 different commits each, respectively. # (use "git pull" to merge the remote branch into yours)
Para completar la rebase, ¿qué hay que hacer?
La rebase está completa.
# On branch crtdev # Your branch and 'origin/crtdev' have diverged, # and have 33 and 8 different commits each, respectively. # (use "git pull" to merge the remote branch into yours)
Ver, no dice nada sobre la rebase en progreso. La rebase ha terminado. Lo único que dice es que crtdev
y origin/crtdev
han divergido, pero eso es exactamente lo que se supone que está diciendo después de una rebase.
Has hecho una rebase de crtdev
en master
. Eso significa que ha descartado la historia anterior de crtdev
y la ha vuelto a crear en el master
. Sin embargo, origin/crtdev
es una reference separada y aún apunta a la historia anterior. Tu historia ahora se ve algo así como:
X--Y--Z...--master \ \ \ A'--B'--C'--D'--E'--F'--crtdev \ A--B--C--D--E--F--origin/crtdev
Las revisiones A'
– crtdev
hacen los mismos cambios (sin la resolución del conflicto) que el origin/crtdev
, pero son cambios nuevos. Debido a que también contienen los nuevos cambios de la ID maestra y de confirmación en git, es una sum de comprobación de su contenido.
Ahora bien, si nadie más ha basado nada en origin/crtdev
, solo desea extraer la nueva historia. git push -f
(los nombres de las twigs coinciden, por lo que no se necesitan arguments; el command completo sería git push -f origin crtdev:crtdev
).
Sin embargo, si alguien ya usó origin/crtdev
, habrá hecho lo incorrecto . Debería descartar los resultados de la rebase ( git reset --hard origin/crtdev
) y merge
lugar. El problema es que si ya hay otro trabajo basado en la twig, seguirá basándose en su versión anterior. Si bien es posible volver a establecer una base en la nueva versión, es muy fácil olvidar y hacer algo mal y muy confuso para el colega desprevenido.