# How to push the very last modification only ?

4 messages from 2011-07-18 to 2011-07-19. Participants: J. Bakshi, Chris Packham, Drew Northup.
Thread: https://gitlist.dev/t/27842

## J. Bakshi, 2011-07-18 07:47

Subject: How to push the very last modification only ?
Message-ID: <20110718131730.4898ddaf@shiva.selfip.org>
URL: https://gitlist.dev/e/20110718131730.4898ddaf%40shiva.selfip.org

```
Hello list,

I have found that during push, all local commit goes into the git server. Where I like to only push the very last modification with a meaningful comment which will be available at the git server. How can I then push only the last modified one ?

Thanks

```

## Chris Packham, 2011-07-18 08:58

Subject: Re: How to push the very last modification only ?
Message-ID: <4E23F5CB.3090009@gmail.com>
URL: https://gitlist.dev/e/4E23F5CB.3090009%40gmail.com
In-Reply-To: <20110718131730.4898ddaf@shiva.selfip.org>

```
Hi,

On 18/07/11 19:47, J. Bakshi wrote:
> Hello list,
> 
> I have found that during push, all local commit goes into the git 
> server.

Yes that's the normal behaviour. When you think about what push is doing
it's trying to make the remote branch the same as your local branch.

> Where I like to only push the very last modification with
> a meaningful comment which will be available at the git server. How
> can I then push only the last modified one ?

This is easily doable. What you need to do is prepare a branch that you
do want to push. Something like this, assuming that your current branch
is 'master' and you want to push to origin/master:

  # first create temporary a branch to use while you're delivering
  git checkout -b delivery origin/master

  # now cherry pick the commits you do want to push. I usually use
  # gitk and cherry-pick from the right-click menu, but for simplicity
  # I'll use git cherry-pick here.
  git cherry-pick master
  # you can provide a commit id instead of 'master'.

  # at this point you could also use git commit --amend to add any
  # final tweaks to the commit

  # check that your delivery branch is good using git log/gitk. Build,
  # test, etc

  # now push it to your local delivery branch to the remote master
  # branch
  git push origin delivery:master

  # now do some cleanup
  git checkout master
  git branch -d delivery
  git rebase origin/master

```

## Drew Northup, 2011-07-18 16:49

Subject: Re: How to push the very last modification only ?
Message-ID: <1311007753.18654.32.camel@drew-northup.unet.maine.edu>
URL: https://gitlist.dev/e/1311007753.18654.32.camel%40drew-northup.unet.maine.edu
In-Reply-To: <4E23F5CB.3090009@gmail.com>

```

On Mon, 2011-07-18 at 20:58 +1200, Chris Packham wrote:
> Hi,
> 
> On 18/07/11 19:47, J. Bakshi wrote:
> > Hello list,
> > 
> > I have found that during push, all local commit goes into the git 
> > server.
> 
> Yes that's the normal behaviour. When you think about what push is doing
> it's trying to make the remote branch the same as your local branch.
> 
> > Where I like to only push the very last modification with
> > a meaningful comment which will be available at the git server. How
> > can I then push only the last modified one ?
> 
> This is easily doable. What you need to do is prepare a branch that you
> do want to push. Something like this, assuming that your current branch
> is 'master' and you want to push to origin/master:
<snip>

Another way to do what Chris describes is to use Interactive Rebase (git
rebase -i) to squash commits together. Please read the manual page for
that carefully before using it on a production repository.
-- 
-Drew Northup
________________________________________________
"As opposed to vegetable or mineral error?"
-John Pescatore, SANS NewsBites Vol. 12 Num. 59

```

## J. Bakshi, 2011-07-19 06:07

Subject: Re: How to push the very last modification only ?
Message-ID: <20110719113758.3099f220@shiva.selfip.org>
URL: https://gitlist.dev/e/20110719113758.3099f220%40shiva.selfip.org
In-Reply-To: <4E23F5CB.3090009@gmail.com>

```
On Mon, 18 Jul 2011 20:58:51 +1200
Chris Packham <judge.packham@gmail.com> wrote:

> Hi,
> 
> On 18/07/11 19:47, J. Bakshi wrote:
> > Hello list,
> > 
> > I have found that during push, all local commit goes into the git 
> > server.
> 
> Yes that's the normal behaviour. When you think about what push is doing
> it's trying to make the remote branch the same as your local branch.
> 
> > Where I like to only push the very last modification with
> > a meaningful comment which will be available at the git server. How
> > can I then push only the last modified one ?
> 
> This is easily doable. What you need to do is prepare a branch that you
> do want to push. Something like this, assuming that your current branch
> is 'master' and you want to push to origin/master:
> 
>   # first create temporary a branch to use while you're delivering
>   git checkout -b delivery origin/master
> 
>   # now cherry pick the commits you do want to push. I usually use
>   # gitk and cherry-pick from the right-click menu, but for simplicity
>   # I'll use git cherry-pick here.
>   git cherry-pick master
>   # you can provide a commit id instead of 'master'.
> 
>   # at this point you could also use git commit --amend to add any
>   # final tweaks to the commit
> 
>   # check that your delivery branch is good using git log/gitk. Build,
>   # test, etc
> 
>   # now push it to your local delivery branch to the remote master
>   # branch
>   git push origin delivery:master
> 
>   # now do some cleanup
>   git checkout master
>   git branch -d delivery
>   git rebase origin/master
> 
> 

It works !! Many many thanks :-)

```
