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

Programmer Humor

19804 readers
53 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 2 years ago
MODERATORS
872
submitted 3 weeks ago* (last edited 3 weeks ago) by [email protected] to c/[email protected]
you are viewing a single comment's thread
view the rest of the comments
[–] calcopiritus 19 points 3 weeks ago (10 children)

I don't even know why people ITT are blaming the IDE and completely ignoring this.

When you learn git, you do so on a dummy project, that has 5 files which are 10 characters long each.

An IDE is not made so you can't break things, it is tool, and it should let you do things. It's like complaining that Linux will let you delete your desktop environment. Some people actually want to delete your desktop environment. You can't remove that option just because someone can accidentally do it by ignoring all the warnings.

[–] thebestaquaman 16 points 3 weeks ago (5 children)

Got will not delete untracked files though, which is what happened here. If you want to discard changes to a file with git, you first have to commit the file to the index at some point, which means there's only ever so much damage an erroneous "git restore" or "git reset" can do. Specifically, neither of them will delete all the files in an existing project where VC has just been added.

[–] calcopiritus 7 points 3 weeks ago (2 children)

This user was not using git though, he was using vs code. That button doesn't say "git reset" it says "discard all changes". And btw, what it does is "git clean", which is something that git can do.

Just below the button there is a list of all the changes. In his case, there were 3000 changes of the type "file creation". Discarding a file creation can only be made one way: deleting the file.

Anyway, this user is presumably in his learning phase, I would not assume that he knows what git reset or git restore actually do.

[–] thebestaquaman 1 points 3 weeks ago

Fair enough, git clean does exist. However, if the button saying "discard all changes" is really a button that runs git clean, that's just a plain terrible design choice. git clean is "delete all untracked files", which is specifically not discarding changes, because there can be no changes to discard on an untracked file. Even talking about "changes" to an untracked file in VC context makes little sense, because the VC system doesn't know anything about any changes to the file, only whether it exists or not.

That's not even mentioning the fact that the option to "git clean" shows up as one of the easily accessible options in relation to a staging process. Especially if you're coming from the git CLI, you're likely to associate "discard changes" with "git restore".

load more comments (1 replies)
load more comments (3 replies)
load more comments (7 replies)