问题
由于这个 git(或 github?)特性,我快疯了 - 我创建了一个新分支,但我无法将其推送到 github 上的上游存储库。这不是我在这个 repo 上推送的第一个分支,到目前为止一切都很顺利。
演练
我创建了一个新分支:
$ 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
并尝试 push :
$ git push --set-upstream origin adam/no-push-bugfix
$ fatal: adam/whatever-name-bugfix cannot be resolved to branch.
知道为什么我的新分支被上游拒绝了吗?
最佳答案
我在网上找不到这个问题的正确解释。所以我添加这个是为了帮助其他人理解这个问题。
Git 分支名称区分大小写,并且映射到存储库中的文件/目录(并非总是如此,但对于新分支来说很常见)。结果,git 分支名称中的大小写差异可能会导致与您的情况类似的问题。在这种特殊情况下,我们看到现有分支以“Adam/”开头。这意味着在 .git/refs/heads 中存在一个名为“Adam”的文件夹。当您尝试推送到名称以“adam/”开头的分支时,它会与现有文件夹冲突。
关于git: 无法创建上游分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33373740/