我从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

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


当前回答

我的2美分…在我的案例中出现这个问题是因为分支名称中的一个拼写错误(大写字母)。我有两个名字几乎一模一样的分支。

其他回答

我也有这个问题,快把我逼疯了。我有一些类似于feature/name的东西,但是git branch -a显示了我feature/name。重命名分支、删除分支和重新创建分支,这些都不起作用。最终解决问题的是:

进入。git/refs/heads

您将看到一个FEATURE文件夹。将其重命名为feature。

@Ty Le的回答略有修改:

我不需要修改文件——我有一个名为“Feature/…”的分支。,在往上游推的时候,我把标题改成了“feature/…”(第一个字母的大小写被改成了小写字母)。

我从Feature/name签入到Feature/name,它解决了我的问题。

我的2美分…在我的案例中出现这个问题是因为分支名称中的一个拼写错误(大写字母)。我有两个名字几乎一模一样的分支。

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

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