I couldn't make heads or tails of Git for the longest time, until it dawned on me that my mental model of what it was, was completely wrong.
I thought it was a very sophisticated system of file version management that very carefully measured deltas between versions of files, and stored only those deltas. If you believe this, you'll experience nothing but grief with Git, because that's not what it is.
It actually stores everything you tell it to, and can optionally compress it down to deltas. The storage at the root is all content based, instead of file name based, so if you have 5000 different names for the exact same 1 megabyte of stuff, you'll only store it once, along with all the names (and other metadata it uses internally).
Bender · 2h ago
I was used to subversion so I found a cheat-sheet for git for subversion users and that was mostly good enough for my use cases. Over time I learned more out of need and curiosity. It was not a one and done but the basics were a few minutes.
chistev · 1h ago
You never do. You just learn what you need for your daily needs.
I thought it was a very sophisticated system of file version management that very carefully measured deltas between versions of files, and stored only those deltas. If you believe this, you'll experience nothing but grief with Git, because that's not what it is.
It actually stores everything you tell it to, and can optionally compress it down to deltas. The storage at the root is all content based, instead of file name based, so if you have 5000 different names for the exact same 1 megabyte of stuff, you'll only store it once, along with all the names (and other metadata it uses internally).