Aar*_*lla 51 git push remote-branch
在releases/rel_5.4.1使用Git GUI 检查远程分支后,当我尝试执行push以下操作时,我看到此意外错误消息:
fatal: The upstream branch of your current branch does not match
the name of your current branch. To push to the upstream branch
on the remote, use
git push origin HEAD:releases/rel_5.4.1
To push to the branch of the same name on the remote, use
git push origin rel_5.4.1
Run Code Online (Sandbox Code Playgroud)
我不知道Git在说什么.我可能想要推进,origin releases/rel_5.4.1因为那是我检查过的分支.所以这两种选择对我来说都不正确.
git status说我在分店rel_5.4.1.
这是我出现的分支.git/config:
[branch "rel_5.4.1"]
remote = origin
merge = refs/heads/releases/rel_5.4.1
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?
Tin*_*ino 62
为了有可能错过可能最重要细节的读者的利益,隐藏在评论中:
这是由于git config push.default设置. 它定义了git您输入时的内容git push(请参阅链接).
在这个问题中,显然设置设置为simple(默认为git v2),可能是
git config --global push.default simple
Run Code Online (Sandbox Code Playgroud)
这意味着,git当本地和远程分支不完全匹配时,拒绝推送.要允许推到跟踪分支,从而使git pull和git push对称,使用
git config push.default upstream
Run Code Online (Sandbox Code Playgroud)
注意:不要git只是更改当前(本地)git config --global push.default upstream存储库的设置.
Aar*_*lla 36
你的本地分支被调用,rel_5.4.1但远程分支是releases/rel_5.4.1(就Git而言,/分支名称没有特殊含义,只是为了使它们更易于人眼阅读).
当你推动时,Git是否愿意将分支推送到releases/rel_5.4.1(远程分支的名称)或是否要创建新的远程分支.但它确实注意到名称的相似性.
除非您要创建新分支,否则正确的命令是
git push origin HEAD:releases/rel_5.4.1
Run Code Online (Sandbox Code Playgroud)
你也可以用
git push origin rel_5.4.1:releases/rel_5.4.1
Run Code Online (Sandbox Code Playgroud)
要一劳永逸地修复警告,请重命名本地分支以匹配远程名称:
git branch -m releases/rel_5.4.1
Run Code Online (Sandbox Code Playgroud)
s.m*_*jer 27
此错误可以修复一次和所有,具有:
git branch releases/rel_5.4.1 -u origin/releases/rel_5.4.1
Run Code Online (Sandbox Code Playgroud)
它改变分支的上游,以匹配正确的遥控器(再次).
小智 18
在我的情况下 git branch --unset-upstream解决了这个问题.