gitosis和git克隆问题

时间:2009-08-19 06:54:24

标签: git version-control gitosis

我已经安装了gitosis,但是当我使用repos时,我有一些奇怪的事情。 在配置中我有

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = me@server me@laptop

[group prj1]
writable = prj1
members = me@laptop

并在/ home / git / repositories中创建了目录prj1.git,其中包含空的git repo。

我可以毫无问题地从服务器和笔记本电脑上使用gitosis-admin,但是当我在我的笔记本电脑上尝试 git clone prj1时,我看到了

$ git clone git@server:prj1.git
Initialized empty Git repository in /Users/alec/temp/prj1/.git/
fatal: no matching remote head

好的,让我们将prj1从笔记本电脑推送到服务器:

$ git push origin master:refs/heads/master
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

怎么了?

5 个答案:

答案 0 :(得分:5)

您的笔记本电脑上的以下内容是否可以解决此问题? 而不是git clone:

  mkdir prj1
  cd prj1
  git init
  touch README
  git add .
  git commit -m "Added blank readme"
  git remote add origin git@server:prj1.git
  git push origin master

ebneter在评论中添加:

  

您可能会提到其工作原因是您无法克隆空仓库
  (正如我的用户经常发现......

这提醒了OP问题:

  

...在/home/git/repositories我用空git repo 创建了目录prj1.git

这在那里并不理想。
这个SO question提到了克隆空仓库的问题:

  

换句话说,不要尝试克隆空仓库,而是在创建它之后,向它推送一个包含一个无害文件的简单仓库。然后它不再是空的,可以克隆。


从那时起,Chris Johnsen评论:

  

任何Git晚于1.6.2

(实际上自2009年3月以来)

  

可以“克隆”空的存储库   (吓唬引号,因为它实际上只是正常初始化和设置远程,并为假定的,最终主分支创建跟踪配置)。

答案 1 :(得分:5)

即使按照答案1中的步骤操作,我也遇到了同样的问题。

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

为我解决了。显然旧版本的setuptools可以使更新后的钩子不可执行。请参阅this page

答案 2 :(得分:1)

在我想要推送到新的存储库之后,我遇到了同样的消息:

git push -u origin master
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

原因是我在gitosis-admin / keydir中有2个相同的ssh pub-keys(相同的键,不同的名字)。

删除其中一个后,我可以推送到新的存储库

答案 3 :(得分:0)

出现同样的问题,原因是我在我的本地编辑了gitosis.conf并且没有将它提交给服务器。

答案 4 :(得分:0)

在我的情况下,ssh客户端从〜/ .ssh。

中选择了错误的私钥

[gitosis] loglevel = DEBUG帮助查看错误的用户正在登录。

相关问题