我在Git的很多提交中都有很多delta文件(。*〜),我想从所有提交中删除所有文件。
答案 0 :(得分:2)
从所有提交中删除使用git filter-branch
:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .*~' HEAD
GitHub help page有一个更完整的命令:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch .*~' --prune-empty --tag-name-filter cat -- --all
使用(如blog post中所述):
--index-filter
类似于--tree-filter
,但没有检查树,而且速度更快。--ignore-unmatch
参数,用于忽略不存在的文件。但这会重写你的回购历史。
这意味着任何已经克隆过repo的合作者需要在git push --force
之后将他/她的本地克隆重置为您的repo的新历史记录。