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.<p>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].<p>I can not insist enough on how important it is to understand the fundamental design of git, and it is really not complicated.<p>This is what made me understand git and changed it from a hard tool to use, to this amazing productivity software that I love.<p>The kicker for me was to realize that in git <i>(mostly) everything is a reference to a commit id</i>.<p>What&#x27;s a branch? It&#x27;s a human readable string, made for humans, by humans, that ultimately simply references a commit id. What is a new branch? It&#x27;s just a new human readable string pointing to a specific commit in your history.<p>[0] <a href="https:&#x2F;&#x2F;git-scm.com&#x2F;book&#x2F;en&#x2F;v2&#x2F;Git-Internals-Plumbing-and-Porcelain" rel="nofollow">https:&#x2F;&#x2F;git-scm.com&#x2F;book&#x2F;en&#x2F;v2&#x2F;Git-Internals-Plumbing-and-Po...</a><p>[1] <a href="https:&#x2F;&#x2F;git-scm.com&#x2F;book&#x2F;en&#x2F;v2&#x2F;Git-Internals-Git-Objects" rel="nofollow">https:&#x2F;&#x2F;git-scm.com&#x2F;book&#x2F;en&#x2F;v2&#x2F;Git-Internals-Git-Objects</a><p>[2] <a href="https:&#x2F;&#x2F;git-scm.com&#x2F;book&#x2F;en&#x2F;v2&#x2F;Git-Internals-Git-References" rel="nofollow">https:&#x2F;&#x2F;git-scm.com&#x2F;book&#x2F;en&#x2F;v2&#x2F;Git-Internals-Git-References</a>