本地和远程分支名称仍然相同"当前分支的上游分支与当前分支的名称不匹配"

时间:2014-12-02 19:52:30

标签: git

当我做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 个答案:

答案 0 :(得分:5)

Git跟踪哪个本地分支与哪个远程分支相关。当您重命名远程分支时,git 丢失的跟踪哪个远程跟随您的本地v0.2分支。您可以使用分支命令的--set-upstream-to-u标志来解决此问题。

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

现在当您执行git push时,git会知道您的本地v0.2与哪个分支配对。

答案 1 :(得分:1)

您可能已在本地和远程重命名了分支,但本地分支的上游似乎仍然指向旧名称。您可以通过执行

来验证这一点
$ git branch -vv
…
* v0.2   01234abc [origin/v1.1]: Some message

...如果确实在方括号中显示origin/v1.1,则需要更改上游。它应该像推送时指定-u标志一样简单:

git push -u origin v0.2