Subject: Re: Combining/merging commits

From: Johannes Sixt <[email-masked]>
Date: Tue, 15 Apr 2008 08:37:09 +0200

xpr1010 schrieb:
> I have made several commits that should really have only been one, but
> there was a lot of back and forth because of my inherent clumsiness.
> Is there any way to combine or merge these commits to one?

Say, you have this commit series:

 ...--A--B--C--D

and you want to combine all of them, i.e. the last 4 commits, into a new
one, then you can do:

    # undo commits, but leave working directory unchanged
    $ git reset HEAD~4
    # make a new commit
    $ git commit

But if you want to combine only A,B,C because D should remain a separate
commit (i.e. what you want to combine are *not* the last commits), then
use git rebase --interactive, in particular, the 'squash' instruction. You
would use this todo list:

    pick A
    squash B
    squash C
    pick D

-- Hannes