soft sirve remota rama qué para origin example deshacer cambiar git version-control git-merge

sirve - git undo pull merge



Deshacer git pull, cómo llevar repos al antiguo estado (8)

Igual que la respuesta de jkp, pero aquí está el comando completo:

git reset --hard a0d3fe6

donde se encuentra a0d3fe6 haciendo

git reflog

y mirando el punto en el que desea deshacer.

¿Hay alguna forma de revertir o deshacer git pull para que mis fuentes / repos lleguen al estado antiguo que era antes de hacer git pull? Quiero hacer esto porque combinó algunos archivos que no quería, pero solo fusiona otros archivos restantes. Entonces, quiero recuperar esos archivos, ¿es posible? Gracias :)

EDITAR Quiero deshacer git merge para aclarar. Después de ver algunas respuestas, hice esto.

git reflog bb3139b... HEAD@{0}: pull : Fast forward 01b34fa... HEAD@{1}: clone: from ...name...

Y ahora que debo hacer ? Haciendo git reset --hard esta bien? No quiero volver a atornillarlo, ¿así que pedir pasos detallados?


Si hay una fusión fallida, que es la razón más común para querer deshacer un git pull , ejecutar git reset --merge hace exactamente lo que uno esperaría: conservar los archivos buscados, pero deshacer la fusión que git pull intentó fusionar. Entonces, uno puede decidir qué hacer sin el desorden que git merge veces genera. Y no necesita uno para encontrar el ID de compromiso exacto que, --hard menciona más --hard en todas las demás respuestas, es necesario.


Si tiene gitk (intente ejecutar "gitk --todo desde su línea de comandos de git"), es simple. Simplemente ejecútelo, seleccione la confirmación a la que desea revertir (clic con el botón derecho) y seleccione "Restablecer la rama maestra aquí". Si no tiene cambios no confirmados, elija la opción "difícil".


Supongamos que $COMMIT fue el último ID de confirmación antes de realizar git pull . Lo que necesitas para deshacer el último tirón es

git reset --hard $COMMIT

.

Prima:

Al hablar de tirar, me gustaría compartir un truco interesante,

git pull --rebase

Este comando anterior es el comando más útil en mi vida de git que ahorró mucho tiempo.

Antes de enviar su nuevo compromiso al servidor, pruebe este comando, se sincronizarán automáticamente los últimos cambios del servidor (con fetch + merge) y colocará su compromiso en la parte superior del registro de git. No hay necesidad de preocuparse por la extracción / fusión manual.

Encuentre detalles en: http://gitolite.com/git-pull--rebase


Una forma más moderna de deshacer una fusión es:

git merge --abort

Y la forma un poco más antigua:

git reset --merge

La forma de la vieja escuela descrita en las respuestas anteriores (advertencia: descartará todos sus 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 . Es por esto que encuentro que git reset --merge es mucho más útil en el trabajo diario.


funciona primer uso: git reflog

encuentre su SHA de su estado anterior y haga (HEAD @ {1} es un ejemplo)

git reset --hard HEAD@{1}


puedes hacer git reset --hard ORIG_HEAD

ya que "pull" o "merge" establecen ORIG_HEAD para que sea el estado actual antes de realizar esas acciones.


git pull hará dos cosas: realiza una git fetch y luego una git merge donde combina las ramas que se han configurado para que se fusionen en la configuración.

Entonces, lo que quiere hacer es deshacer la fusión (deshacer la búsqueda no tiene mucho sentido y no debería ser necesario).

Para hacerlo, puede intentar usar git reset --hard para restablecer a un estado anterior. Use el comando git-reflog para encontrar el SHA-1 del estado anterior y luego reinícielo.

Advertencia : git reset --hard elimina todos los cambios no confirmados.