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更加混乱。