git 强制刷新所有文件,包括未修改的文件

git 强制刷新所有文件,包括未修改的文件

有人知道比以下方法更好的方法来重新签出工作目录中的所有文件吗?
换句话说,我想用某个提交引用的缓存副本强制覆盖工作目录中的每个文件,而不管文件是否已被修改。

以下是我目前的做法:

rm -rf *
git checkout <ref> .

这有效,但会删除未跟踪的文件,并且不会删除隐藏的.files。当然,我不想删除.git,但我确实希望其他文件.files受到影响。
我可以想出一种更完整的方法来删除工作目录中的所有文件,但留在 Git 内的解决方案是理想的。

我为什么要这样做:更改 AutoCRLF
文件尚未被修改,但需要从缓存中重写。
我使用的引用只是 HEAD,所以git checkout .,但我想将问题推广到任何提交或分支。

编辑

对于这个问题,我们假设工作目录是干净的(未修改)。如果有更改,您可以随时git stash在执行此操作之前进行更改。

相关内容