Initially, I was struggling to understand git. How it’s work and why it behaves like this?
I knew a few git commands pull, push, commit, and fetch to get my work done. This book covers all the topics. Starting from a basic concept like “How git snapshot works” to a more advanced concept like “Working of git internals”.
Understand git internals also helped me to understand how Tree and LinkedList data structures are useful in the real world. Still, there are plenty of things that I am still trying to understand.
The most valuable chapter for me was to Merge and Rebase. I was so afraid of rebasing that I always used to merge branches, which makes the git merge graph very hard to understand. It’s like a network cable mess.
Rebase makes history clean. Now I am confident to use rebase after understanding how it works and by doing more practice. I still do mess it up sometimes. The key point to take away from git is, whatever is committed is never lost.
git reflog is a rescue command if you ever have messed up something.