On 22 Nov 2007, at 13:15, Jonas Juselius wrote:
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?
I may be missing something here, but you know that you can edit
commits and squash commits together (using something like "git rebase
--interactive mytopic~42"), right?
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html