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

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


当前回答

对我来说,git状态给了我错误的分支名称,hotFix/issue-233而不是hotFix/issue-233。Git分支没有显示正确的分支名称。

其他回答

不同的套管也有同样的问题。

对开发(或master)进行签出,然后将名称(错误的名称)更改为其他名称,如test。

git checkout development
git branch -m wrong-name test

然后将名称改回正确的名称

git branch -m test right-name

然后签出到右名称分支

git checkout right-name

然后推送到远程分支

git push origin right-name

它是大小写敏感的,只要确保创建的分支和推送到分支都是相同的大写。

例子:

git checkout -b "TASK-135-hello-world"

错误的做法:

git push origin task-135-hello-world     #FATAL: task-135-hello-world cannot be resolved to branch

正确的做法:

git push origin TASK-135-hello-world

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

git push --all -u

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

git branch -D master

我在Windows 10中通过使用cmd而不是GitBash解决了这个问题。

这与字符大小写以及git和命令行如何处理它们有关。

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

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