# pushing a branch without merging

4 messages from 2011-06-20 to 2011-06-20. Participants: Carlo Trimarchi, Carlos Martín Nieto, PJ Weisberg.
Thread: https://gitlist.dev/t/27664

## Carlo Trimarchi, 2011-06-20 14:11

Subject: pushing a branch without merging
Message-ID: <BANLkTin4fpwX9NgnP0U1+z9tRA=akR6MDg@mail.gmail.com>
URL: https://gitlist.dev/e/BANLkTin4fpwX9NgnP0U1%2Bz9tRA%3DakR6MDg%40mail.gmail.com

```
Hi,
I'm managing a website with Git. I work on my local machine and push
changes to a bare git repository on a remote server. Then there there
is a hook to pull those changes in a directory with the live website.
I use the server only for the development version of the site and it
happens that when I'm working on a branch feature I want to show to
others what I'm doing.

So, on the local machine I can easily create a new branch, but I don't
know how to push what I modified in the new branch without affecting
the master branch.
What am I missing?

```

## Carlo Trimarchi, 2011-06-20 14:56

Subject: Re: pushing a branch without merging
Message-ID: <BANLkTikWDzZD8b-aUMXJwByeN3tBsYipgQ@mail.gmail.com>
URL: https://gitlist.dev/e/BANLkTikWDzZD8b-aUMXJwByeN3tBsYipgQ%40mail.gmail.com
In-Reply-To: <4DFF5B41.1000108@micronengineering.it>

```
2011/6/20 Massimo Manca <massimo.manca@micronengineering.it>:

> then you edit and add files on the newly branch, so as usually you have
> to use:
>    git add .
>    git commit -m "what I change on this branch" -a
>
> When you have to update the remote then staying on experimental branch
> you can:
>    git push

This is exactly what I did, but on the server it showed the old version.
This is what appears when commiting:

➜  website git:(experimental) ✗ git commit -a -m "commit message"
[mario_style 7764c96] commit message
 2 files changed, 315 insertions(+), 204 deletions(-)
 rewrite index.html (88%)
➜  website git:(experimental) ✗ git push website
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 451 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To ssh://myserver.bla.com/home/user/website.git
   f93d62f..eb8e369  master -> master

I'm in the experimental branch, but in the end it shows master ->
master. Maybe that is what it is supposed to show, not sure.

```

## Carlos Martín Nieto, 2011-06-20 15:03

Subject: Re: pushing a branch without merging
Message-ID: <20110620150303.GA2782@bee.lab.cmartin.tk>
URL: https://gitlist.dev/e/20110620150303.GA2782%40bee.lab.cmartin.tk
In-Reply-To: <BANLkTikWDzZD8b-aUMXJwByeN3tBsYipgQ@mail.gmail.com>

```
On Mon, Jun 20, 2011 at 04:56:12PM +0200, Carlo Trimarchi wrote:
> 2011/6/20 Massimo Manca <massimo.manca@micronengineering.it>:
> 
> > then you edit and add files on the newly branch, so as usually you have
> > to use:
> >    git add .
> >    git commit -m "what I change on this branch" -a
> >
> > When you have to update the remote then staying on experimental branch
> > you can:
> >    git push
> 
> This is exactly what I did, but on the server it showed the old version.
> This is what appears when commiting:
> 
> ➜  website git:(experimental) ✗ git commit -a -m "commit message"
> [mario_style 7764c96] commit message
>  2 files changed, 315 insertions(+), 204 deletions(-)
>  rewrite index.html (88%)
> ➜  website git:(experimental) ✗ git push website
> Counting objects: 7, done.
> Delta compression using up to 8 threads.
> Compressing objects: 100% (4/4), done.
> Writing objects: 100% (4/4), 451 bytes, done.
> Total 4 (delta 2), reused 0 (delta 0)
> To ssh://myserver.bla.com/home/user/website.git
>    f93d62f..eb8e369  master -> master
> 
> I'm in the experimental branch, but in the end it shows master ->
> master. Maybe that is what it is supposed to show, not sure.

By default, git-push only pushes matching branches (those that exist
both in the local and remote repos). What you want to do might be

   git push website experimental

if you want to create the branch 'experimental', or if your deployment
system only checks out the 'master' branch, you might find

    git push website experimental:master

useful. In this case you may have to force-push master again, which is
not recommended (though in your case it might be fine). You can find
more details about how to specify which branches you want to push in
the git-push manpage.

Cheers,
   cmn
```

## PJ Weisberg, 2011-06-20 15:51

Subject: Re: pushing a branch without merging
Message-ID: <BANLkTik8j1g6wqeD7oGQra1Ep10uaTH0Rg@mail.gmail.com>
URL: https://gitlist.dev/e/BANLkTik8j1g6wqeD7oGQra1Ep10uaTH0Rg%40mail.gmail.com
In-Reply-To: <20110620150303.GA2782@bee.lab.cmartin.tk>

```
On Monday, June 20, 2011, Carlos Martín Nieto <cmn@elego.de> wrote:

> if you want to create the branch 'experimental', or if your deployment
> system only checks out the 'master' branch, you might find
>
>     git push website experimental:master
>
> useful. In this case you may have to force-push master again, which is
> not recommended (though in your case it might be fine).

FYI, that *replaces* the remore master branch with the local
experimental branch.  If you just want someone else to be able to be
able to 'git pull website experimental', what you want to do is 'git
push website experimental' or 'git push website --all'.

-- 

-PJ

```
