最佳答案
我有一个很大的 git 项目,愚蠢地导入到 eclipse 并运行自动格式化。现在,项目中的每个文件都显示为已修改。与其提交已格式化的文件,不如恢复所有已格式化但没有其他更改的文件。例如:
$ 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
我知道 file2.cpp
、 file2.h
和 file3.cpp
已经用内容进行了修改(即,不仅仅是格式化)。我希望将更改隐藏到这三个文件中,然后签出一个旧的修订版,以便之后可以将更改重新应用到这些文件中。我宁愿避免这样的事情:
$ cp file2.cpp ~/tmp
$ git checkout blahblahblah
$ cp ~/tmp/file2.cpp .
如果有一个显而易见的方法,不涉及藏匿,让我知道。只要能完成任务就行。