Re: Git in a Nutshell guide
- From
- Jonas Juselius <jonas@iki.fi>
- Date
- Nov 22, 2007, 13:15 UTC
- Message-ID
- <1195737303.19260.27.camel@localhost>
- In-Reply-To
- <fhsc7b$k4g$1@ger.gmane.org>
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.