¿Cómo devolver cambios no confirmados, incluidos archivos y carpetas?

¿Hay un comando git para devolver todos los cambios no confirmados en el árbol de trabajo y el índice, y también para eliminar los archivos y carpetas recién creados?

737
27 апр. fijar MEM 27 apr. 2011-04-27 19:06 '11 a las 19:06 2011-04-27 19:06
@ 10 respuestas

Puede ejecutar estos dos comandos:

 # Revert changes to modified files. git reset --hard # Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`) git clean -fd 
1263
28 апр. respuesta dada htanata 28 abr 2011-04-28 05:37 '11 a las 5:37 del 2011-04-28 05:37

Si desea descartar los cambios solo en el directorio de trabajo actual, use

 git checkout -- . 
border=0

Espero que esto ayude.

417
21 июня '13 в 7:41 2013-06-21 07:41 Ramashish Baranwal dio la respuesta el 21 de junio de 2013 a las 7:41 2013-06-21 07:41

Use "git checkout -..." para descartar los cambios en el directorio de trabajo.

 git checkout -- app/views/posts/index.html.erb 

o

 git checkout -- * 

elimina todos los cambios realizados en archivos desinstalados en estado git, por ejemplo

 modified: app/controllers/posts.rb modified: app/views/posts/index.html.erb 
77
13 марта '13 в 4:16 2013-03-13 04:16 La respuesta se le da a Zarne Dravitzki el 13 de marzo de 2013 a las 4:16 2013-03-13 04:16

Una forma no trivial es ejecutar estos dos comandos:

  • git stash Esto moverá sus cambios a stash, devolviéndolo al estado HEAD.
  • git stash drop Esto eliminará el último caché creado en el último comando.
35
18 июля '13 в 12:20 2013-07-18 12:20 Glumgold da la respuesta el 18 de julio de 2013 a las 12:20 2013-07-18 12:20
 git clean -fd 

No ayudó, hubo nuevos archivos. Lo que hice es eliminar completamente todo el árbol de trabajo, y luego

 git reset --hard 

Consulte " ¿Cómo limpiar el directorio de trabajo local en git? " Para agregar la opción -x para limpiar:

 git clean -fdx 

Nota El indicador -x eliminará todos los archivos ignorados por Git, así que tenga cuidado (consulte la discusión en la respuesta a la que me refiero).

12
15 окт. La respuesta está dada por Fr0sT 15 oct. 2012-10-15 09:57 '12 a las 9:57 2012-10-15 09:57

Creo que puedes usar el siguiente comando: git reset --hard

10
27 апр. Respuesta dada por Josnidhin el 27 de abril. 2011-04-27 19:10 '11 a las 19:10 2011-04-27 19:10

Tenga en cuenta que todavía puede haber archivos que no parecen desaparecer, puede que no estén editados, pero git puede marcarlos como editables debido a cambios en el CRLF / LF. Vea si recientemente realizó algunos cambios en .gitattributes .

En mi caso, agregué la configuración de CRLF al archivo .gitattributes , y todos los archivos permanecieron en la lista de "archivos modificados" debido a esto. Cambiando los ajustes. Los atributos de Gitat los hicieron desaparecer.

4
19 июля '16 в 13:07 2016-07-19 13:07 Rob Quist da la respuesta el 19 de julio de 2016 a las 13:07 2016-07-19 13:07

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
-2
19 нояб. La respuesta la da Jason Lemay el 19 de noviembre. 2013-11-19 05:08 '13 a las 5:08 2013-11-19 05:08

Uso:

 git reset HEAD filepath 

Por ejemplo:

 git reset HEAD om211/src/META-INF/persistence.xml 
-3
09 февр. Respuesta dada por Aniket el 09 de febrero. 2015-02-09 16:18 '15 a las 16:18 2015-02-09 16:18

Usualmente uso este método que funciona bien:

 mv fold/file /tmp git checkout fold/file 
-3
08 апр. Respuesta dada por thinkhy 08 abr. 2016-04-08 10:17 '16 a las 10:17 2016-04-08 10:17

Otras preguntas sobre las etiquetas o Haz una pregunta