¿Existe un comando git para revertir todos los cambios no confirmados en un árbol e índice de trabajo y también para eliminar archivos y carpetas recién creados?
1072
¿Existe un comando git para revertir todos los cambios no confirmados en un árbol e índice de trabajo y también para eliminar archivos y carpetas recién creados?
Respuestas:
Puede ejecutar estos dos comandos:
fuente
git clean -i
para un modo interactivo.git merge --abort
.Si desea revertir los cambios solo en el directorio de trabajo actual, use
Y antes de eso, puede enumerar los archivos que se revertirán sin realizar ninguna acción, solo para verificar lo que sucederá, con:
fuente
git reset --hard
?Use "git checkout - ..." para descartar cambios en el directorio de trabajo
o
elimina todos los cambios realizados en los archivos sin etapas en el estado de git, por ejemplo
fuente
git checkout -- *
no funciona para mí a menos que esté en el directorio donde se encuentran los archivos modificados. Para retirar todos los archivos en todo el repositorio, debe hacerlogit checkout -- :/
git checkout -- *
, la estrella se reemplaza por el Shell, con todos los archivos y directorios en el directorio actual. Por lo tanto, debe ir en subdirectorios. Esto funciona para mi. Pero gracias por resaltar la sintaxis ": /" que parece más limpia en mi opinión.Una forma no trivial es ejecutar estos dos comandos:
git stash
Esto moverá tus cambios al alijo, regresándote al estado de HEADgit stash drop
Esto eliminará el último alijo creado en el último comando.fuente
fatal: git-write-tree: error building trees Cannot save the current index state
no ayudó, quedaban nuevos archivos. Lo que hice fue eliminar totalmente todo el árbol de trabajo y luego
Consulte " ¿Cómo borro mi directorio de trabajo local en git? " Para obtener consejos para agregar la
-x
opción de limpieza:La marca de nota
-x
eliminará todos los archivos ignorados por Git, así que tenga cuidado (vea la discusión en la respuesta a la que me refiero).fuente
Creo que puedes usar el siguiente comando:
git reset --hard
fuente
Tenga en cuenta que es posible que todavía haya archivos que no parecen desaparecer; es posible que no se hayan editado, pero git podría haberlos marcado como editados debido a cambios en CRLF / LF. Vea si ha realizado algunos cambios
.gitattributes
recientemente.En mi caso, agregué configuraciones CRLF en el
.gitattributes
archivo y todos los archivos permanecieron en la lista de "archivos modificados" debido a esto. Cambiar la configuración de .gitattributes los hizo desaparecer.fuente
Si tiene un cambio no confirmado (solo en su copia de trabajo) que desea revertir a la copia en su última confirmación, haga lo siguiente:
fuente
git rm filename
, y no funciona.error: pathspec 'filename' did not match any file(s) known to git.
git rm
esgit checkout master -- filename
Git 2.23 introdujo el
git restore
comando para restaurar los archivos del árbol de trabajo.https://git-scm.com/docs/git-restore
Para restaurar todos los archivos en el directorio actual
Si desea restaurar todos los archivos fuente de C para que coincidan con la versión en el índice, puede hacer
fuente
Puede usar el siguiente comando git que puede revertir todos los cambios no confirmados realizados en su repositorio:
Ejemplo:
fuente
Usualmente uso esta forma que funciona bien:
fuente
Un camino seguro y largo:
git branch todelete
git checkout todelete
git add .
git commit -m "I did a bad thing, sorry"
git checkout develop
git branch -D todelete
fuente
Utilizar:
Por ejemplo:
fuente