无法将本地更改推送到现有远程分支

时间:2012-09-09 18:00:06

标签: git remote-branch

有一个名为“my-remote”的远程分支,我以前没有问题。截至今天,我不能推,我得到不同的错误。

我得到的第一个错误是:

hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. If you did not intend to push that branch, you may want to
hint: specify branches to push or set the 'push.default' configuration
hint: variable to 'current' or 'upstream' to push only the current branch.

我做了一些研究,并希望它可以解决问题:

git config push.default tracking

跑完之后我再次推动了推动:

git push https://github.com/someurl/mybranch.git

我收到以下错误:

pushing to remote 'https://github.com/someurl/mybranch.git', which is not the upstream of
your current branch 'my-remote', without telling me what to push
to update which remote branch.

我试过这个:

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

但它告诉我:

fatal: remote part of refspec is not a valid name in https://github.com/someurl/mybranch.git

2 个答案:

答案 0 :(得分:7)

如果要在my-remote远程分支上推送主分支,则正确的语法为:

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

(首先:远程回购参考,refspec,来自git push man page

关于您的第一条错误消息,如果它确实没有告诉您合并,则可能需要git pull --rebase
或者至少是:

 git config --global push.default current

(如“Configure Git to Only Push Current Branch”中所述)。

如果您在本地分支“my-remote”(根据命令就是这种情况),您可以通过以下方式确保设置上游分支:

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

答案 1 :(得分:0)

推送到现有git仓库有9个步骤。

我试过" git push --set-upstream origin master"并得到以下错误:

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.

然后我尝试了#34; git pull"并得到了最新的变化:

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>

如果您希望为此分支设置跟踪信息,可以使用以下命令设置:

git branch --set-upstream-to=origin/<branch> master

我做了一个&#34; git push&#34;并且更改失败:

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.

&#34; git add -A&#34;和&#34; git commit&#34;没有用,因为没有什么可以承诺的。

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

在分支主机上 无需提交,工作目录清理

&#34; git branch --set-upstream-to = origin / master master&#34;似乎做了伎俩。

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.

然而,一个&#34; git push origin master&#34;没有工作,因为当前分支的提示是在远程对手的后面。

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&#34; git pull&#34;需要合并回购品。

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.

执行&#34; git pull&#34;,&#34; git push origin master&#34;正是在Visual Studio git插件中使同步命令工作所需要的。

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>