Trabajando con git, después de algunos 'commit' y un par de 'push', ¡me di cuenta de que estoy usando la rama incorrecta!
Ahora tengo que eliminar de alguna manera mis cambios en wrong_branch y confirmar e impulsar los cambios en right_branch
¿Cuál es la mejor (y sencilla) forma de hacerlo?
gracias
Respuestas:
cambie a esa rama, verifique
git log
ygit revert
esas confirmaciones individualmente. Una vez que haya hecho eso, vuelva a la rama deseada y allí podrá usargit cherry-pick
para elegir confirmaciones específicas de las referencias de git y fusionarlas en la rama derecha.Si las confirmaciones están agrupadas y no hay confirmaciones presionadas después de las confirmaciones sucias, incluso puede usar
git reset
para llevar esa rama incorrecta a un estado justo antes de sus confirmaciones y luego seguir eso nuevamentegit cherry-pick
para obtener sus confirmaciones en la rama correcta.fuente
git cherry-pick commitsha1 commitsha2
.revert
es mucho más limpio y menos dramático que areset
menos que realmente desee eliminar algo sensible (¿credenciales?)La forma más sencilla es utilizar
git rebase
. Suponga que tiene esa configuración:Quiere mover el cambio C3, C4 a la rama derecha.
Ahora el escenario es
Entonces tienes que impulsar tus resultados con fuerza (SI nadie se ha sincronizado con tu repositorio remoto todavía):
fuente
git push -f
, mejor usogit push --force-with-lease
. Al menos, asegura que la referencia remota se actualizará solo si nadie presionó otras confirmaciones sobre sus confirmaciones.Un pequeño atajo que se agrega a la respuesta de Dhruva.
fuente