Estoy en la rama mybranch1
. mybranch2
se bifurca mybranch1
y se realizaron cambios en mybranch2
.
Luego, mientras estaba encendido mybranch1
, lo hice git merge --no-commit mybranch2
Muestra que hubo conflictos al fusionar.
Ahora quiero descartar todo (el merge
comando) para que mybranch1
vuelva a ser lo que era antes. No tengo idea de cómo hago esto.
git
git-merge
git-merge-conflict
Anshul
fuente
fuente
Respuestas:
Último Git:
Esto intenta restablecer su copia de trabajo al estado en que se encontraba antes de la fusión. Eso significa que debería restaurar los cambios no confirmados antes de la fusión, aunque no siempre puede hacerlo de manera confiable. En general, no debe fusionarse con cambios no confirmados de todos modos.
Antes de la versión 1.7.4:
Esta es una sintaxis anterior pero hace lo mismo que la anterior.
Antes de la versión 1.6.2:
que elimina todos los cambios no confirmados, incluida la fusión no confirmada. A veces, este comportamiento es útil incluso en versiones más nuevas de Git que admiten los comandos anteriores.
fuente
git reset --merge
incluso en versiones más recientes. He tenido ungit merge --abort
error (sin hacer cambios) dondegit reset --merge
tiene éxito (y hace lo correcto) en git 2.2.1.git merge --abort
seguido degit reset --merge
cuando el conflicto de automerge aparecía en mi escondite.git merge --abort
funciona para mí, sin embargo, me encontré en una situación en la que salí en un estado HEAD separado, y uno de mis archivos tenía un estado "ambos modificados". Quería descartar todo y volver a una sucursal, tuve que hacerlogit reset --hard
,git merge --abort
me dijeron que no había fusión para abortar (falta MERGE_HEAD).git merge --abort
no es capaz de devolverle su estado anterior, y en ese caso la "sintaxis anterior"git reset --hard
funciona.En realidad, vale la pena notar que
git merge --abort
solo es equivalente a logit reset --merge
dado queMERGE_HEAD
está presente. Esto se puede leer en el comando git help for merge.Después de una fusión fallida, cuando no existe
MERGE_HEAD
, la fusión fallida se puede deshacergit reset --merge
pero no necesariamente congit merge --abort
, por lo que no solo son sintaxis antiguas y nuevas para la misma cosa .Personalmente me parece
git reset --merge
mucho más útil en el trabajo diario.fuente
git stash apply
una rama incorrecta ygit merge --abort
no hice nada (noMERGE_HEAD
), mientras quegit reset --merge
hice el truco.git merge --abort
es el nuevo comandogit reset --merge
y me encontré con el mismo problema que @geomaster. ¡Fue súper útil, gracias!Asumiendo que estás usando el último git,
fuente
Hay dos cosas que puede hacer primero deshacer la fusión por comando
o
puede ir a su estado de confirmación anterior temporalmente por comando
fuente
Sourcetree
Si no confirma su fusión, simplemente haga doble clic en otra rama (= pago) y cuando sourcetree le pregunte si desea descartar todos los cambios, acepte
fuente