threads / discuss / 22930

Re: error: failed to push some refs

Subject: Re: error: failed to push some refs

## tl;dr

4 messages between Mar 7, 2010 and Mar 7, 2010.

replies: 3people: 3as markdown or json

Thomas Anderson· Mar 7, 2010, 02:15 UTC · lore

error: failed to push some refs

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· Mar 7, 2010, 02:18 UTC · re: Thomas Anderson · lore
Thomas Anderson <zelnaga@gmail.com> wrote:
Show 15 quoted lines
> 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· Mar 7, 2010, 05:04 UTC · re: Shawn O. Pearce · lore
On Sat, Mar 6, 2010 at 8:18 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
Show 30 quoted lines
> 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· Mar 7, 2010, 09:43 UTC · re: Thomas Anderson · lore
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

← back to recent threads