git/list[1] front-page[2] threads[3] people[4] search[5] about
 

push rejected (non-fast-forward)

From
DDdebugging data <debugging.data@gmail.com>
Date
Nov 25, 2014, 17:45 UTC
Message-ID
<C2E11014-CFE8-490E-A21A-DB42CC8E4175@gmail.com>

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@github.com:
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@github.com:user-two/project.git
 ! [rejected]        so-much-foo -> so-much-foo (non-fast-forward)
error: failed to push some refs to 'git@github.com: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@gmail.com>
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@gmail.com>
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@gmail.com>
Date:   Mon Nov 24 22:52:42 2014 +0000
    file-two.txt with contents "file two"
commit faf9ccfbde95158b2b4a3e291a1e32789381a37e
Author: User One <debugging.data+user1@gmail.com>
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@gmail.com>
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?
Next: Junio C Hamano
Message 1 of 3 in “push rejected (non-fast-forward)”
  1. debugging dataNov 25, 2014
  2. Junio C HamanoNov 25, 2014
  3. debugging dataNov 26, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.