【发布时间】:2011-08-17 18:18:36
【问题描述】:
有人偶然将他们所有的 bin 和 obj 文件夹提交到我们的 repo
(大约有 40 个这样的文件夹)。我想做一个git rm -r
在所有这些文件夹上。有命令吗?
【问题讨论】:
标签: git git-stage git-clean git-rm
有人偶然将他们所有的 bin 和 obj 文件夹提交到我们的 repo
(大约有 40 个这样的文件夹)。我想做一个git rm -r
在所有这些文件夹上。有命令吗?
【问题讨论】:
标签: git git-stage git-clean git-rm
有备份,
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 中的 '删除对象' 部分>
【讨论】:
一旦你恢复(将文件保留在历史中)或重置提交,
git reset --hard
一旦这些文件被忽略,
git clean -xdf
我在重建解决方案之前使用它进行清理。即使在签出不同的分支或合并之后,似乎 vs 也会使用一些 dll。
您不需要求助于过滤器分支。交互式变基就可以了。记住 --preserve-merges 标志。
希望这会有所帮助。
【讨论】:
git reset --hard 是危险的建议
另一种选择是使用git revert 还原有问题的提交。
【讨论】: