7 ms·
The only reason people lose code is because 1. they didn't read this one diagram: https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
by throwaw20221107 4y ago
The only reason people lose code is because
1. they didn't read this one diagram: https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-...
2. And then they run `reset --hard`
- veilrap 4y agoI'm mostly with you, except, `git reset --hard` is relatively easy to recover from. `git reflog` generally can fix most `git reset --hard` commands. On the other hand. `git checkout .` with unstaged changes tends to be the most common way I've seen people lose code via git.
- throwaw20221107 4y agoThat's fair. Both overwrite (edit: seemingly overwrite) (un)staged changes. But `checkout` requires less hyphens. I feel like all of this would be resolved if my boy Linus had renamed `git add` to `git stage` or `git prepare` or something more clear. Or added some warning, like "all this stuff you haven't committed yet; it's not managed by `git` so don't try to overwrite it all using `git` until you've committed some of it."
- throwaw20221107 4y agoThis is another argument why "not squashing is bad"; because it discourages people from committing.