Git错误:src refspec master与任何

Git错误:src refspec master与任何,git,repository,Git,Repository,我需要创建一个名为carboncake的回购协议 我试过这个: 已将gitosis管理存储库克隆到我的本地计算机 $ git clone gitosis@myserver.net:repositories/gitosis-admin.git $ cd gitosis-admin $ vim gitosis.conf $ mkdir carboncake $ cd carboncake $ git init $ touch a_text_file.txt $ git add a_text_f

我需要创建一个名为
carboncake
的回购协议

我试过这个:

已将gitosis管理存储库克隆到我的本地计算机

$ git clone gitosis@myserver.net:repositories/gitosis-admin.git
$ cd gitosis-admin
$ vim gitosis.conf
$ 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
在文件末尾添加了
[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生成的发布密钥文件(我使用的是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
这是我的问题:

我尝试从本地计算机签出/克隆新存储库

$ git clone gitosis@myserver.net:repositories/gitosis-admin.git
$ cd gitosis-admin
$ vim gitosis.conf
$ 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'
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'
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 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'
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'
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-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'
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'
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/
目录也是空的


如何修复此问题?

您已经创建了一个新的存储库并向索引中添加了一些文件,但尚未创建第一次提交。完成后:

 git add a_text_file.txt 
。。。做:

 git commit -m "Initial commit."

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

快速可能的答案是:当您第一次成功克隆一个空的git存储库时,源代码没有主分支。因此,第一次要推送提交时,必须执行以下操作:

git push origin master
这将为您创建新的主分支。像这样的小事情会让git很困惑

如果这没有解决您的问题,那么可能是gitolite相关的问题:

您的conf文件看起来很奇怪。gitolite附带了一个示例conf文件。我的看起来像这样:

repo    phonegap                                                                                                                                                                           
    RW+     =   myusername otherusername                                                                                                                                               

repo    gitolite-admin                                                                                                                                                                         
    RW+     =   myusername                                                                                                                                                               
请确保您正确设置了conf文件

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


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

他使用的是gitosis而不是gitolite,FWIW。我遇到了这个问题,
git push origin master
也打印了同样的内容error@Danny
git
有一些可怕的错误消息。绝对正确,它只是发生在我身上,带有相同的错误消息,并意识到我没有进行转移和提交。这意味着我刚刚把这个投了赞成票,一个投了反对票。不幸的是,这对我的情况毫无帮助。完成这些步骤后,我遇到另一个致命错误:无法创建“C:/Users/myname/Desktop/work/xamarin/myproj-vs2015/.git/index.lock”:文件存在。接下来是“此存储库中似乎正在运行另一个git进程,例如,由“git commit”打开的编辑器。请确保所有进程都已终止,然后重试。如果仍然失败,则git进程可能已在此存储库中崩溃:手动删除该文件以继续。”我没有任何其他过程,我尝试过删除.git和.git/index.lock文件几次。请先尝试
git branch“branch name”
对于那些从谷歌来到这里的人,您可能只需要更新git。当您尝试推送更改时,过时的版本偶尔会导致奇怪的错误。这里的一个小错误是“git推送原始主控”与“git推送原始主控”。。。