¿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 -ipara 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 stashEsto moverá tus cambios al alijo, regresándote al estado de HEADgit stash dropEsto eliminará el último alijo creado en el último comando.fuente
fatal: git-write-tree: error building trees Cannot save the current index stateno 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
-xopción de limpieza:La marca de nota
-xeliminará 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 --hardfuente
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
.gitattributesrecientemente.En mi caso, agregué configuraciones CRLF en el
.gitattributesarchivo 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 rmesgit checkout master -- filenameGit 2.23 introdujo el
git restorecomando 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 todeletegit checkout todeletegit add .git commit -m "I did a bad thing, sorry"git checkout developgit branch -D todeletefuente
Utilizar:
Por ejemplo:
fuente