当我做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。
如何一劳永逸地解决这个问题。
答案 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