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?

    • Buttons@programming.devOP
      link
      fedilink
      English
      arrow-up
      10
      arrow-down
      3
      ·
      2 years ago

      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.

          • Buttons@programming.devOP
            link
            fedilink
            English
            arrow-up
            7
            arrow-down
            5
            ·
            2 years ago

            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.

          • CarrotsHaveEars@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            2 years ago

            Generally 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.

            • ffhein@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              2 years ago

              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

  • davel [he/him]@lemmy.ml
    link
    fedilink
    English
    arrow-up
    30
    arrow-down
    1
    ·
    2 years ago

    I’ve shot myself in the foot enough times over the years with rm -rf. Now I use trash-cli. I don’t know what package manager(s) you use, but I install it via Homebrew.

  • gomp@lemmy.ml
    link
    fedilink
    arrow-up
    12
    ·
    2 years ago

    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)

  • krnl386@lemmy.ca
    link
    fedilink
    arrow-up
    8
    ·
    2 years ago

    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?

  • biribiri11@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    2 years ago

    If you’re nervous about rm, there’s many alternatives that work by moving a file to your recycling bin instead of deleting it outright. I think the current fun one is trash-rs, but some distros package trash-cli.

  • bloodfart@lemmy.ml
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    2 years ago

    Cd into the directory first, then run rm -rf, then cd back out and rm -r just the directory.

    E:fb

  • flux@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    2 years ago

    You should have backups. Preferably also snapshots. Then rm will feel less scary.

  • Mactan@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    2 years ago

    its a bit verbose but my preference is rm -r --interactive=never directoryname

    i really try to avoid rf for myself

  • qaz@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    2 years ago

    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).

  • Pika@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 years ago

    honestly I don’t think there is a better way, like others have said you can use a trash program or you can chmod the git directory before deleting but, I would recommend against the comments saying alias the command, that can lead to even bigger problems if you typo thr alias or mess up in the script. rf can’t break anything unless you say the wrong directory which would be the same with aliases anyway,

    My recommendation out of them all would be using a trash program to move it to the trash that way if you do screw up the location you have a way to restore it otherwise you could make a script to list the files affected using ls and then prompt a yes/no prompt using read before doing the rm script, but that’s something you definitely want to test in a sandbox or user restricted environment if you’re not used to scripting in case something breaks