# Re: error: failed to push some refs

4 messages from 2010-03-07 to 2010-03-07. Participants: Dmitry Potapov, Thomas Anderson, Shawn O. Pearce.
Thread: https://gitlist.dev/t/22930

## Thomas Anderson, 2010-03-07 02:15

Subject: error: failed to push some refs
Message-ID: <15b345f1003061815y52a4e842u9373731cecd8ec60@mail.gmail.com>
URL: https://gitlist.dev/e/15b345f1003061815y52a4e842u9373731cecd8ec60%40mail.gmail.com

```
I cloned git://github.com/symfony/symfony.git to C:/git/test-root and
then cloned C:/git/test-root twice to C:/git/test-clone and
C:/git/test-clone2.  I modify the README file in C:/git/test-clone,
stage it, commit it and then try to push it to C:/git/test-root and
get this message:

To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'non-fast forward'
section of 'git push --help' for details.
Pushing to C:/git/test-root
To C:/git/test-root
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'C:/git/test-root'

What does that even mean?

```

## Shawn O. Pearce, 2010-03-07 02:18

Subject: Re: error: failed to push some refs
Message-ID: <20100307021848.GI2529@spearce.org>
URL: https://gitlist.dev/e/20100307021848.GI2529%40spearce.org
In-Reply-To: <15b345f1003061815y52a4e842u9373731cecd8ec60@mail.gmail.com>

```
Thomas Anderson <zelnaga@gmail.com> wrote:
> I cloned git://github.com/symfony/symfony.git to C:/git/test-root and
> then cloned C:/git/test-root twice to C:/git/test-clone and
> C:/git/test-clone2.  I modify the README file in C:/git/test-clone,
> stage it, commit it and then try to push it to C:/git/test-root and
> get this message:
> 
> To prevent you from losing history, non-fast-forward updates were rejected
> Merge the remote changes before pushing again.  See the 'non-fast forward'
> section of 'git push --help' for details.
> Pushing to C:/git/test-root
> To C:/git/test-root
>  ! [rejected]        master -> master (non-fast forward)
> error: failed to push some refs to 'C:/git/test-root'
> 
> What does that even mean?

Exactly what the message said to you:

  To prevent you from losing history, non-fast-forward updates were rejected
  Merge the remote changes before pushing again.  See the 'non-fast forward'
  section of 'git push --help' for details.

Someone else (your other clone) modified your project in the interim.
To prevent losing their change, you need to use `git pull` to bring
in their work, merge it with your own, and then you can push it to
the destination.

For more details, check the `git push` manpage section suggested
by the error message above.

-- 
Shawn.

```

## Thomas Anderson, 2010-03-07 05:04

Subject: Re: error: failed to push some refs
Message-ID: <15b345f1003062104p67edcde9pba7cf6000d4d7a2c@mail.gmail.com>
URL: https://gitlist.dev/e/15b345f1003062104p67edcde9pba7cf6000d4d7a2c%40mail.gmail.com
In-Reply-To: <20100307021848.GI2529@spearce.org>

```
On Sat, Mar 6, 2010 at 8:18 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
> Thomas Anderson <zelnaga@gmail.com> wrote:
>> I cloned git://github.com/symfony/symfony.git to C:/git/test-root and
>> then cloned C:/git/test-root twice to C:/git/test-clone and
>> C:/git/test-clone2.  I modify the README file in C:/git/test-clone,
>> stage it, commit it and then try to push it to C:/git/test-root and
>> get this message:
>>
>> To prevent you from losing history, non-fast-forward updates were rejected
>> Merge the remote changes before pushing again.  See the 'non-fast forward'
>> section of 'git push --help' for details.
>> Pushing to C:/git/test-root
>> To C:/git/test-root
>>  ! [rejected]        master -> master (non-fast forward)
>> error: failed to push some refs to 'C:/git/test-root'
>>
>> What does that even mean?
>
> Exactly what the message said to you:
>
>  To prevent you from losing history, non-fast-forward updates were rejected
>  Merge the remote changes before pushing again.  See the 'non-fast forward'
>  section of 'git push --help' for details.
>
> Someone else (your other clone) modified your project in the interim.
> To prevent losing their change, you need to use `git pull` to bring
> in their work, merge it with your own, and then you can push it to
> the destination.
>
> For more details, check the `git push` manpage section suggested
> by the error message above.

How do I do "git pull" with Git Gui?  And in any event, if there's a
conflict, I wouldn't want to overwrite my code with the code on the
server - I'd want to view a diff so that I might resolve the conflict
by hand.

```

## Dmitry Potapov, 2010-03-07 09:43

Subject: Re: error: failed to push some refs
Message-ID: <20100307094320.GD31105@dpotapov.dyndns.org>
URL: https://gitlist.dev/e/20100307094320.GD31105%40dpotapov.dyndns.org
In-Reply-To: <15b345f1003062104p67edcde9pba7cf6000d4d7a2c@mail.gmail.com>

```
On Sat, Mar 06, 2010 at 11:04:03PM -0600, Thomas Anderson wrote:
> 
> How do I do "git pull" with Git Gui?

I don't know much about Git Gui, but "git pull" is an equivalent of
"git fetch" and "git merge", and it seems Git Gui got both Fetch
and Merge in its menu...

> And in any event, if there's a
> conflict, I wouldn't want to overwrite my code with the code on the
> server - I'd want to view a diff so that I might resolve the conflict
> by hand.

"git pull" (or "git merge") will produce this conflict in your working
tree, which you should resolve then and commit. (Git automatically
creates a merge commit if there was no conflicts.)


Dmitry

```
