Git from the inside out
Certain systems can best be understood as black boxes. You put some commands in and magic happens. Git was not designed to be such a system and early users of git know this.During the last 5 years, many GUIs have filled in this gap, making it increasingly likely to find people completely stuck because they miss knowledge of the foundations.Git is a utility to manage an append-only repository of tree-objects, blobs and commits. To help humans, git adds- human-readable pointers (branches, HEAD, stash)- an method to incrementally add changes (staging/index/working area)- a method to append tree-objects, blobs and commits from repository to another- some commands which alleviate steps in common tasksThese last set of commands cause pain, as users without foundational knowledge, do not realize these commands are compounding many small steps.