git: 无法创建上游分支

标签 git github branch upstream-branch

问题

由于这个 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/

相关文章:

git - 列出分支的 git/stash pull 请求

git - 使用 Git 将远程 'origin' 更改为 'upstream'

github - 将 github 项目作为库导入现有项目

github - 为什么 github 显示 "Your recently pushed branches"?

assembly - ARM,带链接的分支,BL 与 MOV,B

git - 如何让主分支跟踪?

混帐狂欢狂欢 : open: command not found

git - 不使用 .gitconfig 设置 Git 用户名和电子邮件?

Git: merge 到master,然后推回到所有分支

git - 版本化不同 git 分支的最佳方法