Someone by accident just commited all of their bin and obj folders to our repo
(there are around 40 such folders). I would like to do a git rm -r
on all of these folders. Is there a command to do this?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Have backups,
find . -type d -name bin -exec git rm -r {} \;
find . -type d -name obj -exec git rm -r {} \;
Update
With bash, you can set the shopt globstar, and be happy:
shopt -s globstar
git rm -r **/{obj,bin}/
Finally, if you need to remove these from the history of the repository, look at git filter-branch
and read the section on 'Removing Objects' from the Pro Git Book
回答2:
Once you revert (will keep files in history) or reset the commit,
git reset --hard
Once these are ignored files,
git clean -xdf
I use that to clean up before rebuilding a solution. Seems vs uses some dlls even after a checkout of a different branch or a merge.
You shouldn't need to resort to filter branch. Interactive rebase will do. Remember the --preserve-merges flag.
Hope this helps.
回答3:
Another option is to revert the offending commit with git revert
.