this post was submitted on 20 Nov 2024
876 points (97.6% liked)

Programmer Humor

19630 readers
1097 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] tyler@programming.dev 9 points 6 days 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.