15

有人不小心将他们所有的 bin 和 obj 文件夹提交到我们的仓库(大约有 40 个这样的文件夹)。我想git rm -r 对所有这些文件夹做一个。有没有命令可以做到这一点?

4

3 回答 3

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并阅读Pro Git Book中有关“删除对象”的部分

于 2011-05-03T14:10:38.793 回答
5

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

git reset --hard

一旦这些被忽略的文件,

git clean -xdf

我在重建解决方案之前使用它来清理。即使在签出不同的分支或合并之后,似乎 vs 也会使用一些 dll。

您不需要诉诸过滤器分支。交互式变基就可以了。记住 --preserve-merges 标志。

希望这可以帮助。

于 2011-05-03T14:14:11.313 回答
-3

另一种选择是使用git revert.

于 2011-05-03T14:14:21.003 回答