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
Esto anulará todos los archivos que pueda haber
git add
congit 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.