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?

  • krnl386@lemmy.ca
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 months 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?

    • Buttons@programming.devOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      5 months ago

      That’s a good suggestion for some, but I’m quite comfortable with the command line.

      It’s not that I’m irrationally scared of rm -rf. I know what that command will do. If I slow down an pay attention it’s not as though I’m worried “I hope this doesn’t break my system”.

      What I really mean is I see myself becoming quite comfortable typing rm -rf and running it with little thought, I use it often to delete git repos, and my frequent use and level of comfort with this command doesn’t match the level of danger it brings.

      Just moving them to /tmp is a nice suggestion that can work on anywhere without special programs or scripts.

  • Kekin@lemy.lol
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    5 months ago

    A tip I saw some time ago is to do:

    rm folder -rf

    Additionally you could move the git folder to the trash folder. I think it’s usually located at $HOME/.local/share/trash/files/

    Then you can delete it from the trash once you’re certain you got the right folder

    • d_k_bo@feddit.de
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      5 months ago

      Additionally you could move the git folder to the trash folder. I think it’s usually located at $HOME/.local/share/trash/files/

      Moving something to the trash files folder isn’t the correct way to trash it, since the Trash specification requires storing some metadata for each trash item.

      You should use eg. trash-cli instead.

    • Buttons@programming.devOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      5 months 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
            1
            ·
            5 months 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.

  • BaumGeist@lemmy.ml
    link
    fedilink
    arrow-up
    0
    arrow-down
    1
    ·
    5 months ago

    chmod -R 777 my_project_managed_by_git && rm -r my_project_managed_by_git