Git错误:src refspec master不匹配任何[重复]

Posted

技术标签:

【中文标题】Git错误:src refspec master不匹配任何[重复]【英文标题】:Git error: src refspec master does not match any [duplicate] 【发布时间】:2011-08-13 17:33:00 【问题描述】:

我需要创建一个名为 carboncake 的存储库。

我试过了:

将 gitosis-admin 存储库克隆到我的本地计算机

$ git clone gitosis@myserver.net:repositories/gitosis-admin.git
$ cd gitosis-admin
$ vim gitosis.conf

在文件末尾添加了[repo carboncake][group carboncake] 部分

[gitosis]

[group team]
writable = sweepshots
members = git_id_rsa

[group gitosis-admin]
writable = gitosis-admin
members = git_id_rsa

[repo carboncake]
description = A brand new app by Mithun.
owner = Mithun P

[group carboncake]
writable = myappname
members = mithun @core

然后复制Putty生成的pub key文件(我用的是Git basg for Windows):

$cp /some/where/mithun.pub keydir/mithun.pub

执行了以下命令:

$ git add gitosis.conf keydir/mithun.pub
$ git commit -m "Added 'carboncake' repository and 'mithun' user."

$ git pull --rebase
$ git push

但它不会在我的服务器中创建任何 carboncake.git。

所以我跟着这个:

在服务器上执行了以下命令:

$ su gitosis 
$ git init --bare /srv/gitosis/repositories/carboncake.git

这是我的问题:

我试图从我的本地机器上签出/克隆新的存储库

$ mkdir carboncake
$ cd carboncake
$ git init 
$ touch a_text_file.txt 
$ git add a_text_file.txt 
$ git remote add origin gitosis@myserver.net:repositories/carboncake.git
$ git push origin master

返回错误:

error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gitosis@myserver.net:repositories/carboncake.git'

当我尝试git push origin HEAD:master 时,它返回了错误:

error: src refspec HEAD does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gitosis@myserver.net:repositories/carboncake.git'

当我尝试git push origin master:refs/heads/master 时,它返回了错误:

error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gitosis@myserver.net:repositories/carboncake.git'

本地机器上的git show-ref不显示任何东西

还有/srv/gitosis/repositories/carboncake.git/refs/heads/服务器上的目录是空的。

我该如何解决这个问题?

【问题讨论】:

对于那些从 Google 到这里的人,您可能只需要更新 git。当您尝试推送更改时,过时的版本有时会导致奇怪的错误。 这里的一个小错误是“​​git push origin master”与“git push origin main”... 【参考方案1】:

您已经创建了一个新的存储库并将一些文件添加到索引中,但您还没有创建您的第一个提交。完成后:

 git add a_text_file.txt 

...做:

 git commit -m "Initial commit."

...这些错误应该会消失。

【讨论】:

@Danny Just made a new repository for the first time in a few months... git 有一些可怕的错误消息。 完全正确,它只是发生在我身上,出现了同样的错误消息,并意识到我没有暂存和提交。这意味着我刚刚投了赞成票,一个赞成。 不幸的是,对我的情况没有帮助。在这些步骤之后,我收到另一个致命错误:无法创建'C:/Users/myname/Desktop/work/xamarin/myproj-vs2015/.git/index.lock':文件存在。接下来是“另一个 git 进程似乎正在此存储库中运行,例如由 'git commit' 打开的编辑器。请确保所有进程都已终止,然后重试。如果仍然失败,则可能是 git 进程在此崩溃存储库较早:手动删除文件以继续。”我没有任何其他进程,我尝试过几次删除 .git 和 .git/index.lock 文件。 试试git branch "branch-name" first【参考方案2】:

可能的快速答案:当您第一次成功克隆一个空的 git 存储库时,源站没有 master 分支。因此,当您第一次提交要推送时,您必须这样做:

git push origin master

这将为您创建这个新的主分支。像这样的小事对 git 来说是非常令人困惑的。

如果这不能解决您的问题,那么它可能是与 gitolite 相关的问题:

您的 conf 文件看起来很奇怪。你的 gitolite 应该有一个示例 conf 文件。我的看起来像这样:

repo    phonegap                                                                                                                                                                           
    RW+     =   myusername otherusername                                                                                                                                               

repo    gitolite-admin                                                                                                                                                                         
    RW+     =   myusername                                                                                                                                                               

请确保您正确设置了您的 conf 文件。

Gitolite 实际上用不接受交互式终端会话的修改后的 shell 替换了 gitolite 用户的帐户。您可以通过尝试使用 gitolite 用户帐户 ssh 进入您的盒子来查看 gitolite 是否正常工作。如果它知道你是谁,它会说“你好 XYZ,你可以访问以下存储库:X、Y、Z”,然后关闭连接。如果它不认识你,它就会关闭连接。

最后,在您的本地机器上第一次 git push 失败后,您永远不应该求助于在服务器上手动创建 repo。我们需要知道您的 git push 最初失败的原因。设置好后如果不专门使用 gitolite,可能会导致自己和 gitolite 更加混乱。

【讨论】:

他使用的是 gitosis 而不是 gitolite,FWIW。 我遇到了这个问题,git push origin master 打印同样的错误

以上是关于Git错误:src refspec master不匹配任何[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Git_错误_02_error: src refspec master does not match any

使用 Git 报错 error: src refspec master matches more than one.

git commit时出错:error: src refspec master does not match any

git报错error: src refspec refs/heads/master does not match any.

git push 失败出现error: src refspec master does not match any.解决方案

推送到 Heroku 时如何修复“错误:src refspec master 不匹配任何”错误?