Me encontré con un conflicto de fusión. ¿Cómo cancelo la fusión?
Usé git pull
y tuve un conflicto de fusión:
unmerged: some_file.txt
You are in the middle of a conflicted merge.
¿Cómo abandono mis cambios en el archivo y conservo solo los cambios extraídos?
Dado que pull
no tuvo éxito, entonces HEAD
(no HEAD^
) es la última confirmación "válida" en su rama:
git reset --hard HEAD
La otra parte que desea es permitir que sus cambios anulen los suyos.
Las versiones anteriores de git te permitían usar la estrategia de fusión "de ellos":
git pull --strategy=theirs remote_branch
Pero desde entonces esto se eliminó, como lo explica en este mensaje Junio Hamano (el mantenedor de Git). Como se indica en el enlace , en su lugar harías esto:
git fetch origin
git reset --hard origin
Si su versión de git es >= 1.6.1, puede usar git reset --merge
.
Además, como menciona @Michael Johnson, si tu versión de git es >= 1.7.4, también puedes usar git merge --abort
.
Como siempre, asegúrese de no tener cambios no confirmados antes de iniciar una fusión.
Desde la página de manual de git merge
git merge --abort
es equivalente a git reset --merge
cuando MERGE_HEAD
está presente.
MERGE_HEAD
está presente cuando hay una fusión en curso.
Además, con respecto a los cambios no confirmados al iniciar una fusión:
Si tiene cambios que no desea confirmar antes de iniciar una combinación, solo git stash
hágalos antes de la combinación y git stash pop
después de finalizarla o cancelarla.
git merge --abort
Cancele el proceso de resolución de conflictos actual e intente reconstruir el estado anterior a la fusión.
Si había cambios no confirmados en el árbol de trabajo cuando comenzó la fusión,
git merge --abort
en algunos casos no se podrán reconstruir estos cambios. Por lo tanto, se recomienda confirmar o guardar siempre los cambios antes de ejecutar git merge.
git merge --abort
es equivalente agit reset --merge
cuandoMERGE_HEAD
está presente.
http://www.git-scm.com/docs/git-merge