• mark3748@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    1 month ago

    Then you don’t understand git or source control in general. If you don’t commit your changes, then you discard any changes, you’re set back to the last commit. Discarding changes also includes any un-committed new files.

    • onlinepersona@programming.dev
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Which is exactly the situation the dude was in. As a newbie, it’s an easy mistake to make. Telling somebody who doesn’t know “well, would you look at that, you didn’t know!” is not just unhelpful, it’s useless and condescending.

      Anti Commercial-AI license

    • tyler@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      1 month ago

      discarding changes does not discard uncommitted new files. The VS Code button did a git clean which is completely unexpected. Git even refers to a git clean with completely different terminology.

      git reset -> “Resets the index and working tree. Any changes to tracked files in the working tree since are discarded.

      git clean -> “Cleans the working tree by recursively removing files that are not under version control, starting from the current directory.”. This command also requires you to specify a force option to actually do something, else it quits with an error.

      Note that git clean never once refers to discarding anything, and git reset never refers to removing untracked files. VS Code was doing an idiotic thing. Running git reset --hard AND git clean. There is absolutely no reason to be running git clean from an UI button ever. If you want to remove a file you can explicitly remove it.

      Imagine that the button said “Discard all changes” and then it ran rm -rf --no-preserve-root /*. Would that make sense as a button? No. It definitely would not.