如何递归删除包含〜在git存储库中的临时文件

时间:2014-08-21 15:49:52

标签: git recursion

我已将大量文件和文件夹提交到git存储库,但实现了以〜结尾的所有临时文件。我想递归删除这些。我试过了

git rm -r *~

不幸的是,这不会查看每个子文件夹以删除这些文件。

这里缺少什么?

4 个答案:

答案 0 :(得分:4)

引用glob让git(而不是你的shell)扩展它。

git rm '*~'

请注意,在这种情况下,您不需要-r。 (所有...~都是临时的文件,您不打算删除目录及其内容,这是-r的全部内容。)

答案 1 :(得分:0)

来自文档:

http://git-scm.com/docs/git-rm

  

-r   在给出前导目录名时允许递归删除。

基于此,您可能必须明确列出前导目录以执行递归删除。

答案 2 :(得分:0)

glob“*〜”仅扩展为当前目录中的文件名。但您可以使用Unix find命令查找您要查找的文件,并使用反引号将find的输出传递给git。

git rm `find . -name "*~"`

答案 3 :(得分:0)

您可以使用unix findxargs命令完成以下任务:

find -name '*~' | xargs git rm

(如果您的文件名包含可能包含换行符,则还应查看-print0的{​​{1}}选项和find的{​​{1}}选项。)

请注意,这也会从您的计算机中删除临时文件!使用-0仅从git中删除文件。您也可以先使用xargs选项运行,以确保不会删除任何重要内容。