Git is my buddy: Effective Git as a solo developer
This seems like a classic case wherein messy execution should be followed immediately by meticulous cleanup.<p>Messy execution exploits top-of-mind opportunities without permitting administrative overhead chores to distract.<p>Immediate meticulous cleanup constructs an idealized legible history, with the advantage of familiar recency.<p>The human brain itself works this way, consolidating long-term memory overnight during sleep.<p>The next question is how best to implement this workflow in git.<p>One option would be to use complex arcane git commands to transform a messy actual work history into an idealized legible official record.  Even if the user performs this transformation perfectly, at minimum it causes a loss of information about the actual work history, by altering messy commits.<p>Therefore it's better to write completely new commits for the official record.  One's idiosyncratic work history doesn't belong in the public collaboration git repo.<p>I find it easier to use separate git repos, one personal and the other collaborative.  I transfer info between them only via manually syncing the working trees.<p>It may take syncing from multiple personal commits to update the official record sensibly, which sounds like a burden, until compared to the alternative of trying to understand a mysterious ancient official commit embracing multiple unrelated changes.<p>Code spelunkers unsatisfied with the terseness of the official record should be free to investigate the contributing dev's personal repo to sort through his chaos for clues.