threads / discuss / 9015

Lump commit HOWTO?

Subject: Lump commit HOWTO?

## tl;dr

4 messages between Jul 13, 2007 and Jul 13, 2007.

replies: 3people: 3as markdown or json

Josh Boyer· Jul 13, 2007, 01:21 UTC · lore
Hi All,

I have a specific workflow in mind that I'm not entirely sure how to accomplish with git. What I'd like to do is track a project in a local branch, and do commits of my own there as well. Then when I'm ready to submit the work, I want to take all the incremental commits and lump them into a single new commit and push that out as a patch or into a branch for people to pull from.

E.g.
1) clone upstream into foo branch
2) commit A
3) commit B
4) pull upstream changes into foo branch
5) commit C
6) commit D
7) repeat steps 2 - 6 in various orders
8) take all local commits (A - D) and create a single commit without
any of the upstream changes in it

Is something like that easily accomplished? Or perhaps a different workflow that would allow similar results?

josh
Alex Riesen· Jul 13, 2007, 04:54 UTC · re: Josh Boyer · lore

Re: Lump commit HOWTO?

Josh Boyer, Fri, Jul 13, 2007 03:21:17 +0200:
Show 8 quoted lines
> Hi All,
> 
> I have a specific workflow in mind that I'm not entirely sure how to
> accomplish with git.  What I'd like to do is track a project in a
> local branch, and do commits of my own there as well.  Then when I'm
> ready to submit the work, I want to take all the incremental commits
> and lump them into a single new commit and push that out as a patch or
> into a branch for people to pull from.

See git merge --squash. It is exactly that. Also git-rebase --interactive and git cherry-pick -n can help you to get the same.

Josh Boyer· Jul 13, 2007, 13:43 UTC · re: Alex Riesen · lore

Re: Lump commit HOWTO?

On 7/12/07, Alex Riesen <raa.lkml@gmail.com> wrote:
Show 11 quoted lines
> Josh Boyer, Fri, Jul 13, 2007 03:21:17 +0200:
> > Hi All,
> >
> > I have a specific workflow in mind that I'm not entirely sure how to
> > accomplish with git.  What I'd like to do is track a project in a
> > local branch, and do commits of my own there as well.  Then when I'm
> > ready to submit the work, I want to take all the incremental commits
> > and lump them into a single new commit and push that out as a patch or
> > into a branch for people to pull from.
>
> See git merge --squash. It is exactly that.
Hm, OK.  I'll have to play with that.
> Also git-rebase --interactive and git cherry-pick -n can help you to
> get the same.
Gah... I totally missed git rebase.  Looks massively useful.  Thanks!
josh
martin f krafft· Jul 13, 2007, 06:09 UTC · re: Josh Boyer · lore

Re: Lump commit HOWTO?

also sprach Josh Boyer <jwboyer@gmail.com> [2007.07.13.0321 +0200]:
> 8) take all local commits (A - D) and create a single commit without
> any of the upstream changes in it

This is entirely untested and since I am a newbie, it might well not work, but shouldn't the following do what you want?

git log origin..master --> gives you the local commits not in origin git checkout -b merger git merge --squash <sha> <sha> <sha> ... git commit ...

-- 
martin;              (greetings from the heart of the sun.)
  \____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck
 
spamtraps: madduck.bogus@madduck.net
 
officer, arrest that man! he's whistling a copyrighted song.

← back to recent threads