Key Git Concepts Explained the Hard Way
So many people have a hard time with git. I have yet to meet someone who understands git and uses it proficiently.What I tell every new programmer joining my team is to read chapter 10 (Git Internals) section 10.2 and 10.3 of the amazing online git book[0][1][2].I can not insist enough on how important it is to understand the fundamental design of git, and it is really not complicated.This is what made me understand git and changed it from a hard tool to use, to this amazing productivity software that I love.The kicker for me was to realize that in git (mostly) everything is a reference to a commit id.What's a branch? It's a human readable string, made for humans, by humans, that ultimately simply references a commit id. What is a new branch? It's just a new human readable string pointing to a specific commit in your history.[0] https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Po...[1] https://git-scm.com/book/en/v2/Git-Internals-Git-Objects[2] https://git-scm.com/book/en/v2/Git-Internals-Git-References