revertir restaurar ignorar deshacer cambios archivos git command-line undo git-reset

restaurar - git deshacer todos los cambios no confirmados o no guardados



ignorar cambios git (6)

Estados en transición de un compromiso a un nuevo compromiso

0. last commit,i.e. HEAD commit 1. Working tree changes, file/directory deletion,adding,modification. 2. The changes are staged in index 3. Staged changes are committed

Acción para la transición estatal.

0->1: manual file/directory operation 1->2: git add . 2->3: git commit -m "xxx"

Comprobar dif

0->1: git diff 0->2: git diff --cached 0->1, and 0->2: git diff HEAD last last commit->last commit: git diff HEAD^ HEAD

Volver a la última confirmación

2->1: git reset 1->0: git checkout . #only for tracked files/directories(actions include modifying/deleting tracked files/directories) 1->0: git clean -fdx #only for untracked files/directories(action includes adding new files/directories) 2->1, and 1->0: git reset --hard HEAD

Equivalente a git clone, sin volver a descargar nada.

git reset; git checkout .; git clean -fdx

Estoy intentando deshacer todos los cambios desde mi última confirmación. git reset --hard y git reset --hard HEAD después de ver esta publicación . Respondo con la cabeza ahora está en 18c3773 ... pero cuando miro mi fuente local, todos los archivos todavía están allí. ¿Qué me estoy perdiendo?


Estoy usando el árbol de fuentes ... Puedes revertir todos los cambios no confirmados con 2 sencillos pasos:

1) solo es necesario restablecer el estado del archivo del área de trabajo

2) seleccione todos los archivos de desempaque (comando + a), haga clic derecho y seleccione eliminar

Es así de simple: D


Para aquellos que llegaron aquí buscando si podían deshacer git clean -f -d , mediante el cual se eliminó un archivo creado en eclipse ,

Puede hacer lo mismo desde la interfaz de usuario usando "restaurar desde el historial local" para ref: Restaurar desde el historial local


Si desea " deshacer " todos los cambios no confirmados, simplemente ejecute:

git stash git stash drop

Si tiene algún archivo sin seguimiento (verifique ejecutando el git status ), estos pueden eliminarse ejecutando:

git clean -fdx

git stash crea un nuevo stash que se convertirá en stash @ {0} . Si desea verificar primero, puede ejecutar la git stash list para ver una lista de sus stashes. Se verá algo así como:

stash@{0}: WIP on rails-4: 66c8407 remove forem residuals stash@{1}: WIP on master: 2b8f269 Map qualifications stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders stash@{3}: WIP on blogit: c9bd270 some changes

Cada alijo se nombra después del mensaje de confirmación anterior.


también está el git stash , que "esconde" los cambios locales y se puede volver a aplicar más tarde o descartar si ya no es necesario

más información sobre el escondite


  • Esto anulará todos los archivos que pueda haber git add con git add :

    git reset

  • Esto revertirá todos los cambios locales no confirmados (deben ejecutarse en la raíz de recompra):

    git checkout .

    También puede revertir los cambios no confirmados solo a un archivo o directorio en particular:

    git checkout [some_dir|file.txt]

    Otra forma de revertir todos los cambios no confirmados (más tiempo para escribir, pero funciona desde cualquier subdirectorio):

    git reset --hard HEAD

  • Esto eliminará todos los archivos locales sin seguimiento, por lo que solo quedarán los archivos con seguimiento de git:

    git clean -fdx

    ADVERTENCIA: -x también eliminará todos los archivos ignorados, incluidos los especificados por .gitignore ! Es posible que desee utilizar -n para obtener una vista previa de los archivos que desea eliminar.

En resumen: ejecutar los comandos a continuación es básicamente equivalente a un nuevo git clone de la fuente original (pero no vuelve a descargar nada, por lo que es mucho más rápido):

git reset git checkout . git clean -fdx

El uso típico para esto sería en los scripts de compilación, cuando debe asegurarse de que su árbol esté absolutamente limpio; no tiene modificaciones, ni archivos de objetos creados localmente ni artefactos de compilación, y desea que funcione muy rápido y que no se vuelva a reproducir. Clonar todo el repositorio cada vez.