git:无法创建上游分支

时间:2015-10-27 16:44:44

标签: git github branch upstream-branch

问题

我因为这个git(或github?)特性而去香蕉 - 我已经创建了一个新分支,但是我无法将其推送到github上的上游回购。这不是我推动这个回购的第一个分支,到目前为止一切顺利。

操作实例

我创建了一个新分支:

$ git checkout -b adam/no-push-bugfix

对文件and added some of them进行了一些更改(这意味着某些更改未提交):

$ git add --patch path/to/some/file

确保更改正确:

$ git diff --staged
$ git commit -v
$ git status

并试图推动:

$ git push --set-upstream origin adam/no-push-bugfix
$ fatal: adam/whatever-name-bugfix cannot be resolved to branch.

我知道为什么我的新分支会从上游被拒绝?

2 个答案:

答案 0 :(得分:6)

我无法在互联网上找到关于此问题的正确解释。所以我添加这个来帮助其他人理解这个问题。

Git分支名称区分大小写,它映射到存储库中的文件/目录(并非总是如此,但对于新分支来说是常见的)。因此,git分支名称中的大小写差异可能会导致像您的情况一样的问题。在这种特殊情况下,我们看到现有分支以" Adam /"开头。这意味着有一个名为" Adam"的文件夹。存在于.git / refs / heads中。当您尝试推送名称以" adam /"开头的分支时它与退出文件夹冲突。

答案 1 :(得分:2)

TL; DR - 再次检查分支。

奇怪的是,我似乎已经不知何故离开了分店。 oh-my-zsh提示符显示我在分支中,但git branch表明我不在任何分支中:

enter image description here

git checkout Adam/no-push-bugfix之后,我似乎在分支中:

enter image description here

现在一切正常,我可以把分支推到上游。我不确定是什么问题(例如,在adamAdam之间存在个案差异。)