2011-04-27 61 views
179

我需要創建一個名爲carboncake的回購。Git錯誤:src refspec master不匹配任何

我嘗試這樣:

克隆Gitosis的管理員信息庫,以我的本地機器

$ git clone [email protected]: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 [email protected]: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 '[email protected]:repositories/carboncake.git' 

當我試圖git push origin HEAD:master它返回的錯誤:當我試圖git push origin master:refs/heads/master它返回的錯誤

error: src refspec HEAD does not match any. 
fatal: The remote end hung up unexpectedly 
error: failed to push some refs to '[email protected]: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 '[email protected]:repositories/carboncake.git' 

git show-ref本地機器不顯示任何東西

另外/srv/gitosis/repositories/carboncake.git/refs/heads/服務器上的目錄爲空。

我該如何解決這個問題?

回答

451

您已經創建了一個新的存儲庫並將一些文件添加到索引中,但尚未創建第一次提交。你做了之後:

git add a_text_file.txt 

...做的事:

git commit -m "Initial commit." 

...這些錯誤應該消失。

+5

@Danny [在幾個月內第一次創建了一個新的存儲庫...](https://www.youtube.com/watch?v=t2F1rFmyQmY) – Droogans 2013-05-12 22:12:00

+33

'git'有一些糟糕的錯誤消息。 – 2014-03-04 03:43:35

+0

絕對正確,它只是發生在我身上的同一個錯誤消息,並意識到我還沒有登臺和提交。 這意味着我剛剛upvoted這個,一個。不幸的是, – blakroku 2015-03-30 10:40:51

16

快速可能的答案:當您第一次成功克隆空的git存儲庫時,原點沒有主分支。所以你第一次承諾推動你必須做的:

git push origin master 

這將爲你創建這個新的主分支。像這樣的小東西與混帳非常混亂。

如果這沒有解決您的問題,那麼它可能是一個gitolite相關的問題:

你的conf文件看起來很奇怪。應該有你的gitolite附帶的示例conf文件。我看起來像這樣:

repo phonegap                                           
    RW+  = myusername otherusername                                    

repo gitolite-admin                                           
    RW+  = myusername                                        

請確保你正確設置你的conf文件。

Gitolite實際上用一個不接受交互式終端會話的修改後的shell替換gitolite用戶的帳戶。您可以使用gitolite用戶帳戶查看gitolite是否正在使用ssh進入您的盒子。如果它知道你是誰,它會說「Hi XYZ,你可以訪問以下儲存庫:X,Y,Z」,然後關閉連接。如果它不知道你,它會關閉連接。

最後,在您的本地機器上第一次git推送失敗後,您決不應該採取在服務器上手動創建回購的方式。我們需要知道爲什麼你最初的git推送失敗。一旦設置完成,你就不會專門​​使用gitolite,這會讓你自己和gitolite更加混亂。

+0

他使用gitosis而不是gitolite,FWIW。 – 2012-05-21 01:50:47

相關問題