Git repos have lots of write protected files in the .git directory, sometimes hundreds, and the default rm my_project_managed_by_git will prompt before deleting each write protected file. So, to actually delete my project I have to do rm -rf my_project_managed_by_git.
Using rm -rf scares me. Is there a reasonable way to delete git repos without it?
deleted by creator
its a bit verbose but my preference is rm -r --interactive=never directoryname
i really try to avoid rf for myself
You can use
ls <PATH>first to check you are deleting the right files. I do this and I’ve never accidentally deleted the wrong files (using rm).The problem is that
rm -rfshouldn’t scare you?What are the chances something like
~/projects/some-project $ cd .. ~/projects $ rm -fr some-projectmay delete unexpected stuff? (especially if you get into the habit of tab-completing the directory argument)
So… you’re afraid of the command that does the thing you’re trying to do?
More like, I’m afraid of the command doing more than I’m trying to do.
What I want to do is ignore prompts about write-protected files in the
.gitdirectory, what it does is ignore all prompts for all files.
If you’re scared to do
rm -rf, do something else that lets you inspect the entire batch of deletions first. Such as:find .git ! -type d -print0 | xargs -0 -n1 echo rm -fvThis will print out all the
rm -fvcommands that would be run. Once you’ve verifid that that’s what you want to do, run it again withoutechoto do the actual deletion. If you’re scared of having that in your history, either use a full path for .git, or prepend a space to the non-echo version of the command to make it avoid showing up in your shell history (assuming you have ignorespace in your HISTCONTROL env var)Cd into the directory first, then run rm -rf, then cd back out and rm -r just the directory.
git rebase doesn’t work?
You should have backups. Preferably also snapshots. Then rm will feel less scary.
Maybe you can create a bash function (and add it to your bash config files) that only executes the
rm -rfcommand we have a.gitfile around?function git-rm { if [ -d "$1" ] && [ -d "$1/.git" ] then rm -rf $1; fi }Ah, yes, run a bash file executing
rm -rf $1What could go wrong?




