Git:需要递归地'git rm'所有bin和obj文件夹的内容

时间:2011-05-03 14:08:21

标签: git git-stage git-clean git-rm

有人偶然将所有bin和obj文件夹提交给我们的仓库 (大约有40个这样的文件夹)。我想做一个git rm -r 在所有这些文件夹上。是否有命令这样做?

3 个答案:

答案 0 :(得分:26)

备份,

 find . -type d -name bin -exec git rm -r {} \;

 find . -type d -name obj -exec git rm -r {} \;

更新

使用bash,你可以设置shopt globstar,并且开心:

 shopt -s globstar
 git rm -r **/{obj,bin}/

最后,如果您需要从存储库的历史记录中删除这些内容,请查看git filter-branch并阅读 {{3}中'删除对象'部分}

答案 1 :(得分:5)

一旦恢复(将文件保留在历史记录中)或重置提交,

git reset --hard

一旦忽略这些文件,

git clean -xdf

我在重建解决方案之前使用它进行清理。即使在结帐不同的分支或合并之后,似乎vs也使用了一些dll。

您不应该求助于过滤器分支。交互式rebase会做。记住--preserve-merges标志。

希望这有帮助。

答案 2 :(得分:-3)

另一个选择是使用git revert恢复违规提交。