! [rejected] master -> master (non-fast-forward) on a new up-to-date branch

12,000

Check your git config push.default. It might be on "matching", since it tries to push all existing branches.
That was the default before Git 2.0+.

I would recommend setting it to "simple", in order to push only the current branch.

That being said, to push a branch, you need (for the first push) to setup an upstream branch.

For a branch never pushed before:

git push -u origin newest

For a branch which does exists on the upstream repo:

git branch --set-upstream-to=origin/master master
git branch --set-upstream-to=origin/new new

Then a git checkout master ; git pull would work.

Share:
12,000

Related videos on Youtube

CodyBugstein
Author by

CodyBugstein

Aspiring computer nerd.

Updated on October 11, 2022

Comments

  • CodyBugstein
    CodyBugstein over 1 year

    In my repo, I have a master branch, and a new branch.

    I've been working on new for a while, making commits, and pushes as I go. I decided now to branch off new and call it newest. So I did

    git checkout -b "newest"
    

    and the branch was successfully created. I added a file, and started working on it. I committed my changes a couple of times.

    BUT when I try to push this new branch and my changes to it to origin, I get this error:

    C:\wamp\www\myproj>git push origin
    To https://github.com/Imray/Proj.git
     ! [rejected]        master -> master (non-fast-forward)
     ! [rejected]        new -> new (non-fast-forward)
    error: failed to push some refs to 'https://github.com/Imray/Proj.git'
    hint: Updates were rejected because a pushed branch tip is behind its remote
    hint: counterpart. Check out this branch and integrate the remote changes
    hint: (e.g. 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details. 
    

    So, as specified in the instructions, I tried git pull, but then I got:

    There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details
    
        git pull <remote> <branch>
    
    If you wish to set tracking information for this branch you can do so with:
    
        git branch --set-upstream-to=origin/<branch> newest
    

    I'm stuck.

    How do I push my new branch and the changes to github?