@silverspaceship Here is one of the best talks I have seen explaining how git works under the hood: kzbin.info/www/bejne/aZ6ac5p_q6hgq7M It helped me out quite a bit, because prior to it I had been thinking about git like one might think about some other version control software, and so some things seemed weird. At the end of the day, git simply stores everything in a directed acyclic graph and uses a bunch of tags attached to the nodes of the graph to represent branches and keep track of where you are. (and other things) Most of git's commands either add nodes or manipulate these tags in various ways. (feel free to ignore this if this is something you already know, just putting it out there)