Tengo un gran proyecto de git que, estúpidamente, importé a eclipse y ejecuté un autoformato. Ahora, cada archivo en el proyecto se muestra como modificado. En lugar de comprometer mis archivos formateados, preferiría revertir todos los archivos en los que solo he sido formateado y no tuve otros cambios. Por ejemplo:Stash cambia a archivos específicos
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
# modified: dir/file1.cpp
# modified: dir/file1.h
# modified: dir/file2.cpp
# modified: dir/file2.h
# modified: dir/file3.cpp
# modified: dir/file3.h
# modified: dir/file4.cpp
# modified: dir/file4.h
Sé que file2.cpp
, file2.h
y file3.cpp
han sido modificados con el contenido (es decir, no sólo con formato). Quiero esconder los cambios en estos tres archivos y luego verificar una revisión anterior, para poder volver a aplicar los cambios a estos archivos después. Yo preferiría evitar algo así como:
$ cp file2.cpp ~/tmp
$ git checkout blahblahblah
$ cp ~/tmp/file2.cpp .
Si hay una manera obvia de hacerlo que imposible involucrar a esconder, que me haga saber. lo que hace el trabajo.
Tome un vistazo a la pregunta (http://stackoverflow.com/questions/5506339/how-can-i-git-stash-a-specific-file) pero también parece que en su caso podría 'git add' los archivos con cambios que desea mantener y luego' git checkout - .' y luego, al final, extraiga los archivos agregados si lo desea. – mikej
Con el próximo Git 2.13 (Q2 2017), el comando real sería 'git stash push - file2.cpp file2.h file3.cpp'. Consulte [mi respuesta a continuación] (http://stackoverflow.com/a/42963606/6309) – VonC