gismo: Git In Slow-Motion This project is an attempt to help elucidate what is involved conceptually behind the scenes in the execution of common git commands. What configuration settings are consulted? What objects are created? What are the interactions with remotes? How does git do what it does? The challenge here is to walk the fine line between overwhelming with _too_ much detail and not providing enough information to enable the reader to independently reason out solutions from first principles. Many books and tutorials provide a good foundation for the basics, but eventually the descriptions of commands involve an increasing amount of hand-waving. Git In Slow-Motion is an attempt to slow down and analyze some of these steps in greater detail. It is meant as a supplementary source of information, not a primary one. Initial topic candidates: - tracking branches - git branch - git merge - git rebase - git add -i - git pull - git fetch Another aspect of this project is to facilitate development of good git habits in a safe, directed way through a series of pedagogically contrived exercises accompanied by the materials necessary to do them (i.e. a git repository with all of the necessary branches and commits). These exercises ought to aid in teaching git by providing first-hand practical experience of repository manipulation together with guided inspection of the results. Initial walkthrough candidates: - git rebase -i - teasing apart monolithic commits into logically independent commits - recognizing and squashing commits that benefit from consolidation - reordering and fixup-ing multiple whitespace-related commits - using rebase to avoid superfluous merge commits - recognizing when a rebase would be problematic