欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gitosis安装补充说明 博客分类: Git gitgitosis

程序员文章站 2024-03-13 10:00:39
...
安装部署具体可以参考http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way,或者参考《pro git》相关章节。这里只列出对问题的总结。

1.gitosis-init时直接使用git账户操作即可
[git@localhost ~]$ gitosis-init < /tmp/id_rsa.pub


2.
init成功后,默认生成:
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/

并且以/home/git/repositories作为git项目的根目录,也就是新建的或者已有的git项目需要放到这里。
那么访问路径就可以直接写项目的相对路径了,比如:
git clone git@localhost:gitosis-admin.git

注意到这里并不是repositories/gitosis-admin.git或者其他的。

3.gitosis只会在ssh的公钥授权方式起作用
如果使用ssh的密码授权clone项目,gitosis是不起作用的。也就是大家对所有项目都是读写的权限,并且项目路径是绝对路径,这时候clone的路径为:
git clone git@localhost:/home/git/repositories/gitosis-admin.git

这和未安装gitosis是一致的。未安装gitosis之前,不管是公钥授权还是密码授权,均使用绝对路径。

4.'gitosis-admin.git' does not appear to be a git repository错误
ssh一般会配置为公钥和密码授权两者同时开启,当公钥验证不通过时,还会继续使用密码验证,这时候会提示输入密码。所以经常会出现以下的错误:
[root@localhost ~]# git clone git@localhost:gitosis-admin.git
Cloning into gitosis-admin...
git@localhost's password:
fatal: 'gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

原因:
客户端和服务端的公钥授权没配置正确,解决即可。
另:
因为触发了密码授权,提示错误确实是因为路径找不到,参考第3点,这时候如果写绝对路径,也可以获取到项目,但是绕过了gitosis的权限控制。
相关标签: git gitosis