git checkout todos los archivos


127

¿Cómo puedo deshacerme de todos los cambios en todos los archivos de mi repositorio?

Digamos que estoy en una sucursal e hice algunos cambios. git statusdevuelve un conjunto de archivos en "Cambios no organizados para confirmación" y me doy cuenta de que me gustaría deshacerme de todos estos cambios en todos los archivos. ¿Cómo puedo hacer esto con un solo comando?

Sé que puedo hacer lo siguiente para pagar solo un archivo:

git checkout -- <file>

Noté que git checkout --solo devuelve la lista de todos los archivos no confirmados. Sin embargo, no puedo encontrar una manera de verificarlos, algo así git checkout --all.

Lo comprobé man git checkouty no pude encontrar nada. También vi Git: desproteger todos los archivos excepto uno e intenté git checkout .y tampoco funcionó.

¿Tendría que hacerlo programáticamente, recorriendo la git checkout --salida?

Respuestas:


193

Si está en la raíz de su directorio de trabajo, puede hacer git checkout -- . para retirar todos los archivos en el HEAD actual y reemplazar sus archivos locales.

También puede hacer git reset --hardpara restablecer su directorio de trabajo y reemplazar todos los cambios (incluido el índice).


son las dos opciones equivalentes (si restablecemos a HEAD)?
lucidbrot

10
No, hay ciertas diferencias. Por ejemplo git checkout -- ., solo restablecerá los cambios al estado del índice. Entonces, si ya ha agregado archivos al índice, a eso se restablecerá. Por otro lado git reset --hard, también eliminará el índice, por lo que, por ejemplo, si ha agregado archivos sin seguimiento al índice (para comenzar a rastrearlos), también se eliminarán. git checkouttambién le permite restaurar solo el directorio de trabajo parcialmente al pasar una ruta más específica que puede ser muy útil.
Poke


44
@poke Hola Poke, estoy seguro de que git checkout -. no funciona Lo probé para múltiples cambios no organizados.
Aman

2
otros comandos para lograr el mismo resultado: git checkout --force,git reset --hard
Tjalling

3

Otra forma que encontré útil es:

git checkout <wildcard> 

Ejemplo:

git checkout *.html

Más generalmente:

git checkout <branch> <filename/wildcard>

1
Si está habilitado el globbing en su shell y hay archivos no rastreados en el directorio de trabajo, esto fallará a menos que salga del asterisco, por ejemplo, git checkout \*o git checkout '*'.
Josh Cooley
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.