[英]How do you gitignore all single file extension files from a git repository after committing?
我刚开始使用 git,想知道如何从 git 存储库中删除所有缓存的.exe
文件(我想将它们保留在我的工作文件夹中)。 根文件夹包含也包含.exe
文件的子文件夹。 以下命令会起作用还是我必须做其他事情? 我知道 -r 用于删除目录而不是文件,它似乎是错误的,在搜索这个主题时,我发现唯一相关的事情是使用find
和delete
命令,但我不确定如何使用它们。
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
情况下重新运行)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.