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

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


当前回答

在我的例子中,原因是正确的分支名称是大写的,但在push命令中指定的分支名称是小写的。

$ git branch --contains=HEAD

上面的命令将告诉您正确的分支名称,因此按下它。

其他回答

似乎你试图重命名你的主分支为主。 使用这个命令git branch -M你在主分支上的Main。 执行这个git命令,il将工作:

git push --all -u

在此之后,您可以运行git分支来查看您的分支 然后你可以像这样删除主分支:

git branch -D master

如果你在本地分支,可以重命名分支“Feature/Name”为“Feature/Name”

git -m功能

如果你在推git时遇到问题,在其他分支(ex develop)进行签出,然后返回到重命名的分支

git签出特性/名称

再试试你的git push

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

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

我遇到了同样的问题,这是由于去分支错误的套管。git让我切换到分支与不正确的套管即功能/名称而不是功能/名称。找到了一个比上面列出的更简单的解决方案:

提交你的更改到'feature/Name' Git主签(或开发) Git签出特性/名称<使用正确的大小写 git推