【问题标题】:git: can't create upstream branchgit:无法创建上游分支
【发布时间】:2016-01-27 04:54:42
【问题描述】:

问题

由于这个 git(或 github?)特质,我要疯了 - 我创建了一个新分支,但我无法将它推送到 github 上的上游 repo。这不是我推动这个 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

并试图推动:

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

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

【问题讨论】:

  • 除了/之外,真实的分支名称中还有什么奇怪的字符吗? git branch 是否在本地显示分支?
  • 关于/,你在遥控器上有一个名为adam的分支吗?
  • 奇怪的是,分支已创建,但由于某种原因我不在其中。另一个git checkout adam/whatever-name-bugfix 解决了它。奇怪。

标签: git github branch upstream-branch


【解决方案1】:

我在 Internet 上找不到此问题的正确解释。所以我添加这个是为了帮助其他人理解这个问题。

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

【讨论】:

    【解决方案2】:

    TL;DR - 再次检查分支。

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

    git checkout Adam/no-push-bugfix之后,我好像在分支里:

    现在一切正常,我可以将分支推送到上游。我不确定是什么问题(例如adam 和Adam 之间存在大小写差异)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      • 2017-04-28
      • 2011-06-03
      • 2023-01-14
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2015-04-06
      相关资源
      最近更新 更多