您如何在提交后 git 忽略 git 存储库中的所有单个文件扩展名文件?

How do you gitignore all single file extension files from a git repository after committing?

我刚开始使用 git,想知道如何从 git 存储库中删除所有缓存的 .exe 文件(我想将它们保存在我的工作文件夹中) .根文件夹的子文件夹也包含 .exe 文件。 以下命令会起作用还是我必须做其他事情?我知道 -r 是用于删除目录而不是文件,它似乎是错误的,并且在搜索这个主题时,我发现的唯一相关的东西是使用 finddelete 命令,但我不是确定如何使用它们。

git rm --cached -r *.exe

编辑:我 运行 命令,它只从根文件夹而不是子文件夹中删除了 .exe 手动列出所有子文件夹路径和 运行 命令是唯一的选择吗?

由于需要传递带有缓存标志的 git 命令,对于不熟悉 linux/ unix 中的链接命令的人来说,递归删除 unix 答案是不够的。

应该这样做(在 sh 兼容 shell 中):

find . -name '*.exe' -exec git rm --cached '{}' \;

或者,不太优雅但更容易编写:

ls -R | grep '.exe$' | xargs git rm --cached

您的 git rm -r 命令的问题在于它只会递归到名称以 .exe 结尾的目录,这显然不是您想要的。

转义通配符以便 Git 看到它而不是您的 shell:

git rm -n --cached \*.exe

(如果你喜欢你所看到的,然后在没有 -n 的情况下重新运行)