我有一个origin
存储库,有85个提交。我也在这个项目Heroku远程存储库和第三个新添加的test
空存储库中。我想将test
存储库推送到我的最新提交。我尝试使用git push test 77feq3231bc0fd432233214af3e224ds397397: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.
error: failed to push some refs to 'git@github.com:myuser/test.git'
任何想法我该如何解决?
答案 0 :(得分:0)
如果没有将提交的所有历史记录推送到提交,导致另一端没有提交,则无法推送提交。
那就是说,你出错的地方是一个简单的语法问题。你只需要写:
git push test <hash>:refs/heads/master
考虑:
git push $remote $hash:master
(其中$remote
是远程名称,如test
或原始URL,$hash
是提交哈希ID)。你的Git只知道有一个对象ID,$hash
,它应该发送给另一个Git。然后它应该要求另一个Git为该哈希ID设置一个引用名称。您提供的参考名称为master
- 但是refs/heads/master
是分支名称吗?或者是refs/tags/master
,标记名称?还是完全是其他名字?
你的Git也会查看所有他们的 Git的参考资料。但test
存储库为空且没有引用,因此您的Git在那里找不到refs/heads/master
,因此无法将其用作全名。
通常,您的Git会在:
的左侧侧看到这一点,例如,git push test xyzzy:master
会让您的Git查找名称xyzzy
。这将是一个分支名称 - refs/heads/xyzzy
- 或者可能是标记名称refs/tags/xyzzy
。那会告诉你的 Git:&#34;啊,不要让其他Git设置master
,要求它设置refs/heads/master
或{{1取决于refs/tags/master
&#34;。