gitosis和git克隆问题

Ale*_*sev 2 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
Run Code Online (Sandbox Code Playgroud)

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

我可以从服务器和笔记本电脑的gitosis-admin工作没有问题,但当我想在我的笔记本电脑上git克隆 prj1我看到

$ git clone git@server:prj1.git
Initialized empty Git repository in /Users/alec/temp/prj1/.git/
fatal: no matching remote head
Run Code Online (Sandbox Code Playgroud)

好吧,让prj1从笔记本电脑推送到服务器:

$ git push origin master:refs/heads/master
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

怎么了?

Von*_*onC 5

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

  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
Run Code Online (Sandbox Code Playgroud)

ebneter在评论中添加:

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

这提醒了OP问题:

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

那里不理想.
这个问题提到了克隆空仓库的问题:

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


从那以后,Chris Johnsen评论道:

任何Git晚于1.6.2

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

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

  • 任何超过1.6.2的Git都可以"克隆"空的存储库(吓唬引号,因为它实际上只是正常初始化和设置远程,并为假定的最终主分支创建跟踪配置). (2认同)

Nau*_*fal 5

我有同样的问题,即使按照答案1中的步骤后仍然存在.

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
Run Code Online (Sandbox Code Playgroud)

为我解决了.显然旧版本的setuptools可以使更新后的钩子不可执行.请参阅此页面.