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.解决方案