本地和远程分支名称相同,仍然出现“您当前分支的上游分支与您当前分支的名称不匹配”的错误提示。

10

当我执行 git branch 命令时,结果显示我当前在 v0.2 分支上。

 git branch
  v0.1
* v0.2

但是当我执行 git push 命令时,它会显示 "当前分支的上游分支与当前分支的名称不匹配"。

git 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:v1.1

To push to the branch of the same name on the remote, use

    git push origin v0.2

最初我将这个分支命名为v1.1,但现在我已经在本地和远程将其重命名为v0.2。

我该如何一劳永逸地解决这个问题。

2个回答

15

Git会跟踪哪个本地分支对应哪个远程分支。当你重命名远程分支时,git失去了追踪本地v0.2分支对应哪个远程分支的信息。你可以使用分支命令的--set-upstream-to-u选项来修复这个问题。

git checkout v0.2
git branch -u origin/v0.2

现在当你执行git push命令时,Git 将会知道本地的 v0.2 分支与哪个远程分支相对应。


2
您可能已经在本地和远程都重命名了分支,但是本地分支的上游似乎仍然指向旧名称。您可以通过执行以下操作进行验证:
$ git branch -vv
…
* v0.2   01234abc [origin/v1.1]: Some message

如果在方括号中确实写着 origin/v1.1,则需要修改上游。只需在推送时指定-u标志即可。

git push -u origin v0.2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接