您如何在提交后 git 忽略 git 存储库中的所有单个文件扩展名文件?
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
的情况下重新运行)
我刚开始使用 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
的情况下重新运行)