git:无法创建上游分支

问题

由于这个git(或github?)我要去香蕉 - idiosyncrasy - 我创建了一个新的分支,但我不能将它推到github上游的repo上。 这不是我推动这个回购的第一个分支,到目前为止一切顺利。

演练

我创建了一个新的分支:

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

对文件进行了一些更改,并添加了一些(这意味着一些更改未提交):

$ 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.

任何想法为什么我的新分支从上游拒绝?


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

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


TL; DR - 再次检查分支。

奇怪的是,我似乎已经以某种方式离开了这个分支。 oh-my-zsh提示符显示我在分支中,但是git branch显示我不在任何分支中:

在这里输入图像描述

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

在这里输入图像描述

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

链接地址: http://www.djcxy.com/p/4187.html

上一篇: git: can't create upstream branch

下一篇: Apply a commit chunk by chunk