我从Bitbucket或Github迁移了我的回购。我认为这无关紧要,但这是唯一不同的地方。有一段时间,我设置了两个遥控器:

origin: bitbucket
github: github

然后我删除了这两个,并指向github的起源:

git remote remove origin
git remote remove github
git remote add origin https://github....

开发部门测试推送:

git push origin develop

一切都是最新的,很好。

像往常一样为一些工作创建一个新分支:

git checkout -b Feature/Name

更新一两个文件。尝试推送到远程:

git push origin Feature/Name

这导致了错误:

致命:特征/名称不能解析到分支

在网上搜索这个问题,找到一些关于确保HEAD是正确的,其他关于确保我的分支名称大小写是正确的(尽管,此时远程上还不存在分支)。无法解决。

执行如下命令:

git push --all -u

这让我的功能/名称分支到github,但仍然看到相同的行为之前:

git push origin develop
git push origin Feature/Name

第一个可以工作,而第二个抛出相同的错误。为什么?


当前回答

我在windows系统中也遇到了同样的问题。使用 Git checkout -b your-new-branch从你当前的分支并推送到远程,然后你可以在两个分支中找到提交。

其他回答

我在名为“bugFix/issue-2521”的分支上也有这个问题,我意识到我已经有了相同的分支名称,但没有大写字母“bugFix/issue-2521”,我在创建这个新分支时没有遇到冲突,但我在升级这个分支时遇到了问题。 这个问题最简单的解决方案是将其重命名为git branch -m new-branch-name

如果你有另一个看起来相似的分支,试着重新命名你的分支。

我认为GitHub文件系统有点纠结于相同的分支名称,如果它们区分大小写的话。在我的例子中,我在服务器上有一个这样的分支,

Feature/Settings/Billing

过了一段时间,我试图发布另一个类似的分支,

Feature/Settings/Billing-After-Revamp

然后我得到了一个致命的错误,然后我重命名了新的分支,如下所示,

Feature/Settings/After-Revamp-Billing

它就像一个魅力,我能够成功地发布我的分支没有致命的错误,如上述。

如果你使用的是Omegaman/BugFix这样的文件夹,请确保案例是正确的。似乎你可以签出一个现有的分支作为小写omegaman/BugFix并尝试推送,它会失败。

用正确的外壳重新检出,如git检出Omegaman/BugFix来解决。

尝试这个错误:(feature/test是本地分支名称)

Git分支——set-upstream-to=origin/feature/test feature/test

Git将允许您使用不同的套管签出当前分支,并且它将无法在远程上找到引用。

这是我吃过苦头才知道的。