2012-08-23 11 views
14

Suponiendo que nada se pone en escena, lo que es la forma recomendada para restablecer todo el trabajo que has hecho, a excepción de los archivos: existenCómo git reset --hard todo menos 4 archivos

app/models/a.rb 
app/views/a/index.html.rb 
config/foo.rb 
config/bar.rb 

Otros archivos sucios en aplicación/models/y app/views/que no quiero mantener.

Respuesta

20

Como se describió el problema, que no se ve como si quieres hacer reset. Lo más sencillo es para:

git add app/models/a.rb app/views/a/index.html.rb config/foo.rb config/bar.rb 
git checkout . 

así, añade sus 4 archivos en el índice, y los check out versiones limpias (es decir, descarta cambios) para otros archivos.

Supongo que no has organizado (git add) los archivos modificados antes (entonces deberías desestabilizarlo usando el restablecimiento).

+0

Creo que prefiero este w/'git clean -fd' –

+0

Sí, es diferente -' checkout' funciona con archivos rastreados, 'clean' con untracked. – kan

9

Una forma es git commit esos cuatro archivos, a continuación, restablecer el hardware, y luego deshacer el compromiso:

git add <files to keep> 
git commit -m "temp" 
git reset --hard 
git reset HEAD~ 
4

Si esos cuatro archivos están en el índice, mientras que los archivos no son sucios, un simple git-clean debería hacer el truco. Si no está seguro, use primero el interruptor --dry-run y observe el interruptor --exclude.

De lo contrario, seguir con siride's answer

Cuestiones relacionadas