I'm planning to write a section in the "Nutshell guide" on rewriting history and rebasing. I have a question related to rewriting history. As usual, I'll assume that the part of the history I'm mucking with has not been pushed or pulled by anyone. Suppose I have been working on some topic branch for a while and been overly trigger happy, i.e. I have produced a ridiculous number of commits along the way. At some point when I'm done I want to publish my changes, but doing so would create an insanely obese history full of near nonsense commits. What I want to do is to slim down the commit log into pieces that actually makes sense. What is the preferred (or best, most convenient) way of doing this? The way I have done this previously is essentially: 1. git branch -m mytopic tmp_mytopic # rename 2. git branch mytopci tmp_mytpoic~42 # go back in history Loop: 3.1 git log; git diff; git annotate... 3.2 git diff tmp_mytopic~42..tmp_mytopic~33 | git-apply 3.3 git commit -m "sane commit message" -a 4. git branch -d tmp_mytopic If I need to reorder commits I can first use git-rebase -i to get everything streamlined. There must be a better way of doing this, right? .jonas.
Attachment:
signature.asc
Description: This is a digitally signed message part