Tengo el directorio de trabajo (# 1) que tiene el directorio de proveedores (# 2) en él. Hay una dependencia que quería extraer manualmente sin compositor (versión php de npm / gem). Estaba trabajando en el n. ° 1, no he guardado / confirmado los cambios, cuando decidí que quiero actualizar la biblioteca en el n. ° 2. Navegué a vendor / myname, e hice git pull repository.
Desafortunadamente, comenzó a extraerse y fusionarse con el n. ° 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 fusionar conflictos como composer.json, Readme.md ... (archivos generales)
Quiero "deshacer" este último git pull sin perder ningún cambio que hice en la carpeta # 1. ¿Cómo puedo hacer esto?
Respuestas:
git merge --abort
podría ser lo que estás buscando.fuente
git status
para confirmar.-Git moderno:
Más viejo:
Old-school (advertencia: descartará todos sus cambios locales):
Pero en realidad, vale la pena notar que
git merge --abort
solo equivale agit reset --merge
dado queMERGE_HEAD
está presente. Esto se puede leer en la ayuda de git para el comando merge.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 congit merge --abort
, por lo que no solo son sintaxis antigua y nueva para lo mismo . Personalmente lo encuentrogit reset --merge
mucho más útil en el trabajo diario.fuente
Con Git 2.10 (Q3 2016), sabrá qué hacer, porque
git status
propondrá lagit merge --abort
opción.Consulte la confirmación b0a61ab (21 de julio de 2016) de Matthieu Moy (
moy
) .(Combinado por Junio C Hamano -
gitster
- en el compromiso 5a2f4d3 , 03 de agosto de 2016)fuente