为什么Windows上的git无法识别远程分支

时间:2017-07-06 22:13:05

标签: git

我一直在Linux上使用git而没有任何问题。但是我最近不得不在Windows上使用git,所以我安装了命令行客户端,因为这是我最开心的工作方式。

我的问题是我尝试使用git checkout mybranchname检查我在Linux上创建的分支,但它没有用。我必须指定git checkout -b mybranchname --track origin/mybranchname

从那以后,每当我去推我都会被告知

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:mybranchname

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

    git push origin mybranchname

To choose either option permanently, see push.default in 'git help config'.

有谁知道为什么会这样或者如何解决它?

我在Linux上使用git版本2.12.0.windows.1和2.11.0。在这两种情况下,我的起源都是通过SSH的GitHub Enterprise。

2 个答案:

答案 0 :(得分:3)

在第一个命令中,您将检出必须已存在的本地分支。在第二个命令中,您将创建一个新的本地分支并与远程分支关联。

情景不同。

如果以前不存在本地分支,我会运行:

git branch mybranchname origin/mybranchname -u

-u选项将远程分支设置为本地分支的上游,因此您可以执行以下操作:

git push
git pull

无需限定遥控器:

git push origin mybranchname
git pull origin mybranchname

答案 1 :(得分:1)

答案是Windows的git以某种方式在分支名称中添加了一个无法在命令提示符中显示的unicode字符。

我的一个分支被称为mybranchname,但由于某种未知原因,远程分支被称为\u0096mybranchname(我没有要求它!)

解决方案:删除Windows,再也不会错误地使用那个可怕的操作系统,它是一个糟糕的小文件IO,并随意忽略命令窗口中的字符。

相关问题