推送一个大型 github 回购失败,因为“无法推送到不合格的目的地: master”

我有一个很大的 git repo (由 SVN repo 创建) ,我想把它推到 github。由于它很大,我不能直接尝试推送它,因为它会出现“包太大”的错误。

目前一切正常,我可以一次推一个回购。但是当我尝试这样做的时候,结果是:

git push origin 86c310d8a680d6d0e052fa7db89adb25348f3e54:master
error: unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.

现在还没有远程回收的主分支但是我试着推进它,但是失败了。

我该怎么补救?或者我如何在远程创建一个空的主分支,以便我可以推到它?

35282 次浏览

推到 refs/heads/master就这一次。

git push origin whatever:refs/heads/master

这将明确地创建它作为一个分支,并且您将能够在未来正常地向它推送。

这是因为没有名为 master 的远程引用(它还没有被创建) ,目标引用没有完全限定为 refs/,所以 git 不能根据这个来计算它,源引用是一个 hash 而不是一个名称,所以它也不能根据这个来计算它。通过推到 refs/head/master,它可以工作,因为第二个条件为 true,然后 master 存在于远程中,因此第一个条件为 true

我也犯了同样的错误,发现我把分支的名字拼错了。因此,你可以找到双重检查的分行名称,以确保任何大写字母等在正确的地方。

您还可以使用

git checkout -b branchName

然后将您的 git 存储库推送到该分支

git push origin whatever:branchName

这对我来说很有用: 我在 github UI 上创建了远程分支,然后推送我的本地分支,这个本地分支的名称与它相同。试试看,以防其他方法不起作用。另一种方法是在本地创建一个新的分支,然后推送一个空分支,然后挑选提交,再推送到远程。

看看这个类似的问题: 当删除远程 git 分支时“ error: can’t push to un 不能推送到非限定目的地”