There tend to be two schools of thought when it comes to revision history in something like Git:
The latter group will tend to make use of interactive rebase, etc to make the history as clear and logical as possible. But it's revisionist history.
Perhaps it's the scientist in me, but I don't want to throw away data. I want to be able to go back and see exactly what was done, even if it was a false start or a bug or a silly typo.
But I also value a clear outline of what was done at a pristine, high level.
I wonder if there's a way to use Git that would give you the best of both worlds: be able to rewrite history with an interactive rebase but also keep the original around.
It seems to me that could be as simple as ensuring an extra branch is made before a rebase so the old history doesn't get garbage collected.
@jtauber curious, why would you care about my stupid typo in my fork?
— rchavik (@rchavik) July 8, 2013
@rchavik I may not, in which case I presumably just merge in the clean version of your branch.
— James Tauber (@jtauber) July 8, 2013