推出一个大型的github回购失败了"无法推送到不合格的目的地:master"

时间:2015-02-09 19:37:33

标签: git github

我有一个大的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.

所以,远程仓库还没有主分支,但是我试图推动它并且它失败了。

我该如何解决这个问题?或者我如何在遥控器上创建一个空主分支,以便我可以推送它?

4 个答案:

答案 0 :(得分:104)

推送到refs/heads/master,这一次。

git push origin whatever:refs/heads/master

这将明确地创建它作为分支,并且您将来能够正常推进它。

这是有效的,因为没有名为master的远程ref(它还没有创建),目标ref没有完全限定refs /所以git无法根据它来解决它,并且源ref是一个哈希而不是一个名称,所以它也无法根据它来弄清楚。通过推送到refs / heads / master它可以正常工作,因为第二个条件为真,然后在遥控器上存在master,所以第一个条件为真

答案 1 :(得分:1)

您还可以使用

创建新分支
git checkout -b branchName

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

git push origin whatever:branchName

答案 2 :(得分:1)

这对我有用:我在github UI上创建了远程分支,然后推送了与它同名的本地分支。尝试以防其他方式不起作用。其他方式是在本地创建一个新分支并推送一个空分支,然后樱桃选择你的提交并再次推送到你的遥控器。

检查此类似问题: When deleting remote git branch "error: unable to push to unqualified destination"

答案 3 :(得分:0)

我有同样的错误,发现我拼错了我的分支名称。所以你可以找到双重检查分支名称,以确保任何大写字母等在正确的位置。