push rejected (non-fast-forward)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Changes to a remote branch causes a user not to be able to push their
changes because their tip is behind its remote counterpart.


Here are the git repos:

github.com/user-one/project
github.com/user-two/project

Here's what happened:

1. user-one creates a project and adds file-one.txt to the repo with
contents "file one"

2. user-one commits and pushes to master

3. user-one creates directory "foo/" with a file named "foo.txt". "foo.txt"
contains text "foo"

4. user-one commits and pushes to master

5. user-two forks github.com/user-one/project

6. user-two creates new branch called "so-much-foo" and changes the text of
foo/foo.txt to "so much foo"

7. user-two commit, pushes, to origin/master, and creates a pull request

8. user-one creates "file-two.txt" with contents "file two", commits, and
pushes to master

9. user-two changes the contents of "foo/foo.txt" from "so much foo" to
"foo\nfoo", then commits the file

10. user-two types this command: `git remote add user-one git@xxxxxxxxxx:
user-one/project.git`

11. user-two types another command: git pull --rebase user-one master

12. user-two attempts to push changes to the branch so-much-foo but is
denied as seen here:

$ git push origin so-much-foo
To git@xxxxxxxxxx:user-two/project.git
 ! [rejected]        so-much-foo -> so-much-foo (non-fast-forward)
error: failed to push some refs to 'git@xxxxxxxxxx:user-two/project.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.


It doesn't look like the tip is behind though:


/project$ git log
commit dd240b6ba15d27d074726e9b1b0e665e3507a2fd
Author: User Two <debugging.data+user2@xxxxxxxxx>
Date:   Mon Nov 24 22:55:45 2014 +0000

    foo/foo.txt from "so much foo" to "foo\nfoo"

commit 5cd55b8775750c2631b3c1f249f541402cc38c27
Author: User Two <debugging.data+user2@xxxxxxxxx>
Date:   Mon Nov 24 22:51:12 2014 +0000

    changed foo/foo.txt contents to "so much foo"

commit 75fca5dfa5157a18b55bb89fba70aee8680cfbf2
Author: User One <debugging.data+user1@xxxxxxxxx>
Date:   Mon Nov 24 22:52:42 2014 +0000

    file-two.txt with contents "file two"

commit faf9ccfbde95158b2b4a3e291a1e32789381a37e
Author: User One <debugging.data+user1@xxxxxxxxx>
Date:   Mon Nov 24 22:46:28 2014 +0000

    foo/ and foo/foo.txt with contents "foo"

commit 17471484163127daaf5233eccf5fac89e9d7a53e
Author: User One <debugging.data+user1@xxxxxxxxx>
Date:   Mon Nov 24 22:43:08 2014 +0000

    file-one.txt with contents "file one"


I have struggled with this today, and I'm not sure what to do, so I've
resorted to asking for help here. I guess someone here has dealt with this
at least once.

Are there tools that would help make this process easier?

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]