Can't push local changes to an existing remote branch

前端 未结 2 1125
独厮守ぢ
独厮守ぢ 2021-02-04 17:08

There is a remote branch called \"my-remote\" that I had previously pushed to with no problem. As of today, I can\'t push and I get different errors.

First error I got w

相关标签:
2条回答
  • 2021-02-04 17:34

    There are 9 steps to pushing to an existing git repo.

    I tried "git push --set-upstream origin master" and got the following error:

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git push --set-upstream origin master
    Password for 'https://User@bitbucket.org':
    To https://User@bitbucket.org/User/app.git
     ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'https://User@bitbucket.org/User/
    app.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first merge the remote changes (e.g.,
    hint: 'git pull') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

    I then tried "git pull" and got the lastest changes:

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git pull
    Password for 'https://User@bitbucket.org':
    warning: no common commits
    remote: Counting objects: 344, done.
    remote: Compressing objects: 100% (275/275), done.
    remote: Total 344 (delta 45), reused 336 (delta 41)
    Receiving objects: 100% (344/344), 15.91 MiB | 43.00 KiB/s, done.
    Resolving deltas: 100% (45/45), done.
    From https://bitbucket.org/User/app
     * [new branch]      master     -> origin/master
    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> master
    

    I did a "git push" and the changes failed:

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git push origin master
    Password for 'https://User@bitbucket.org':
    To https://User@bitbucket.org/User/app.git
     ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'https://User@bitbucket.org/User/
    app.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
    hint: before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

    "git add -A" and "git commit" did not work because there was nothing to commit.

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git add -A
    
    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git commit
    

    On branch master nothing to commit, working directory clean

    "git branch --set-upstream-to=origin/master master" seemed to do the trick.

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git branch --set-upstream-to=origin/master master
    Branch master set up to track remote branch master from origin.
    

    However, a "git push origin master" didn't work because the tip of the current branch is behind it remote counterpart.

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git push origin master
    Password for 'https://User@bitbucket.org':
    To https://User@bitbucket.org/User/app.git
     ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'https://User@bitbucket.org/User/
    app.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
    hint: before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

    A "git pull" was needed to merge the repo's.

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git pull
    Password for 'https://User@bitbucket.org':
    Merge made by the 'recursive' strategy.
    

    After executing the "git pull", "git push origin master" was exactly what was needed to get the sync commanded working in Visual Studio git plugin.

    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>git push origin master
    Password for 'https://User@bitbucket.org':
    Counting objects: 5, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (4/4), done.
    Writing objects: 100% (4/4), 539 bytes | 0 bytes/s, done.
    Total 4 (delta 2), reused 0 (delta 0)
    To https://User@bitbucket.org/User/app.git
       40d72a2..9748b8b  master -> master
    
    C:\Users\User\Documents\Visual Studio 2013\Projects\app\User-app-40d72a288916>
    
    0 讨论(0)
  • 2021-02-04 17:36

    If you want to push your master branch on the my-remote remote branch, the correct syntax would be:

     git push https://github.com/someurl/mybranch.git master:my-remote 
    

    (first: remote repo reference, the refspec, from git push man page)

    Regarding your first error message, if it really didn't tell you to merge, then a git pull --rebase might have been needed.
    Or at least a:

     git config --global push.default current
    

    (As mentioned in "Configure Git to Only Push Current Branch").

    If you are in the local branch 'my-remote' (which is the case, according to the command), you can make sure the upstream branch is set by making a:

    git push -u https://github.com/someurl/mybranch.git my-remote:my-remote
    
    0 讨论(0)
提交回复
热议问题