Git错误:src refspec主不匹配任何

我需要创build一个名叫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密钥文件(我使用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 

但是它不会在My Server中创build任何碳饼。

所以我跟着这个:

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

 $ 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/目录也是空的。

我怎样才能解决这个问题?

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

  git add a_text_file.txt 

…做:

  git commit -m "Initial commit." 

…那些错误应该消失。

快速的答案:当你第一次成功克隆一个空的git仓库时,原点没有master分支。 所以你第一次承诺推动你必须这样做:

 git push origin master 

这将为您创build这个新的主分支。 像这样的小东西与混帐非常混乱。

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

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

 repo phonegap RW+ = myusername otherusername repo gitolite-admin RW+ = myusername 

请确保你正确地设置你的conf文件。

Gitolite实际上用一个不接受交互式terminal会话的修改后的shellreplacegitolite用户的帐户。 你可以看到gitolite是否正在使用gitolite用户帐户login到你的服务器。 如果它知道你是谁,它会说“Hi XYZ,你可以访问以下储存库:X,Y,Z”,然后closures连接。 如果它不知道你,它会closures连接。

最后,在你的第一个git推送失败的本地机器上,你永远不要求在服务器上手动创buildrepo。 我们需要知道为什么你最初的git推送失败。 一旦设置完成,你就不会使用gitolite,这会使你自己和gitolite更加混乱。