tag revertir retroceder locales deshacer delete cambios archivo git git-merge git-pull

revertir - retroceder un git pull



Git deshacer intento de fusión (3)

Con Git 2.10 (Q3 2016), sabrá qué hacer, ya que git status propondrá la opción git merge --abort .

Ver commit b0a61ab (21 de julio de 2016) por Matthieu Moy ( moy ) .
(Combinado por Junio ​​C Hamano - gitster - in commit 5a2f4d3 , 03 de agosto de 2016)

status : sugiera '' git merge --abort '' cuando sea apropiado

Ya sugerimos '' git rebase --abort '' durante un rebase en conflicto.
De forma similar, sugiera '' git merge --abort '' durante la resolución de conflictos en '' git merge ''.

Tengo un directorio de trabajo (# 1) que tiene un directorio de proveedores (# 2). Hay una dependencia que quería extraer manualmente sin el compositor (versión php de npm / gem). Estaba trabajando en el # 1, no he guardado / cometido cambios, cuando decidí que quiero actualizar la biblioteca en el # 2. Navegué al proveedor / myname, y lo hice git pull repositorio.

Desafortunadamente, comenzó a tirar y fusionarse con el # 1, en lugar de crear un nuevo directorio en la carpeta del proveedor.

Ahora tengo:

  • Carpeta # 1 con mis cambios.
  • Carpeta # 1 con archivos que no quiero del repositorio incorrecto
  • # 1 fusiona conflictos como composer.json, Readme.md ... (archivos generales)

Quiero "deshacer" este último git pull sin perder los cambios que hice en la carpeta # 1. ¿Cómo puedo hacer esto?


Git moderno:

git merge --abort

Más viejo:

git reset --merge

Old-school (advertencia: descartará todos los cambios locales):

git reset --hard

Pero en realidad, vale la pena notar que git merge --abort solo es equivalente a git reset --merge dado que MERGE_HEAD está presente. Esto se puede leer en la ayuda de git para el comando de combinación.

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

Después de una fusión fallida, cuando no hay MERGE_HEAD , la fusión fallida se puede deshacer con git reset --merge pero no necesariamente con git merge --abort , por lo que no solo son sintaxis antigua y nueva para la misma cosa . Personalmente, encuentro que git reset --merge mucho más útil en el trabajo diario.


git merge --abort puede ser lo que estás buscando.