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?
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
.git
directory, what it does is ignore all prompts for all files.so why not
rm -rf folder/.git/*
thenrm -r folder/*
Maybe they’re afraid of accidentally writing
rm -rf folder/.git /*
or somethingGenerally that is not a concern because regular users won’t be able to
rm
anything else other than those in his own $HOME.Another thing I want to say is, command line is for careful users. If someone is careless, they should create a wrapper around
rm
, or just use a FM.If someone is careless, they should create a wrapper around rm, or just use a FM.
I think that’s the situation OP is in… They don’t trust themself with these kinds of commands, while other commenters here are trying to convince them that they should just use rm -rf anyway
That’s a good example. If I’m regularly running a command that is a single whitespace character away from disaster, that’s a problem.
Imagine a fighter aircraft that had an eject button on the side of the flight stick. The pilot complains “I’m afraid I might accidentally hit the eject button when I don’t need to”, but everyone responds “why would you push the eject button if you don’t want to eject?”, or “so your concern is that the eject button will cause you to eject…?” – That’s how I feel right now.
deleted by creator
What about adding the flags last?
rm deletethisrepo -rf
The problem is that
rm -rf
shouldn’t scare you?What are the chances something like
~/projects/some-project $ cd .. ~/projects $ rm -fr some-project
may delete unexpected stuff? (especially if you get into the habit of tab-completing the directory argument)
deleted by creator
If you’re that worried, why not run chmod -R u+w .git inside the project dir to “un write-protect” the files, then just ascend to the directory containing the project dir (cd …) and use rm -r without -f?
The force flag (-f) is the scary one, I presume?
its a bit verbose but my preference is rm -r --interactive=never directoryname
i really try to avoid rf for myself
Cd into the directory first, then run rm -rf, then cd back out and rm -r just the directory.
E:fb
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).You should have backups. Preferably also snapshots. Then rm will feel less scary.
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 -fv
This will print out all the
rm -fv
commands that would be run. It’s basicallyrm -rf --dry-run
, butrm
doesn’t have that common option. Once you’ve verified that that’s what you want to do, run it again withoutecho
to 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)I use this
xargs echo
pattern a lot when I’m crafting commands that are potentially destructive or change lots of things.deleted by creator
Ah, yes, run a bash file executing
rm -rf $1
What could go wrong?
Sure. Solution removed.
git rebase doesn’t work?