- <李>
李> <李>
李> <李>
李> <李>
李> <李>
李>
- <李>
李> <李>
李> <李>
李>
- <李>
李> <李>
李>
- <李>
李> <李>
李> <李>
李> <李>
李> <李>
李>
Git Git <代码> 代码>
从与安装<一口> <?与? 一口>包。这将创造三件事:
- <李>
该Git <代码> 代码>用户
李> <李><代码> Git代码>该用户所属的组
李> <李>该<代码>/电脑/gitosis 代码>目录将保存gitosis的数据和存储库
李>要配置gitosis,您不要直接在服务器上编辑文件。相反,gitosis提供了一个包含配置的Git存储库。要更新此配置,您<代码> gitosis-admin> 代码可以像任何其他存储库一样克隆,提交和推送。
由于gitosis使用SSH密钥对用户进行身份验证,因此您将需要生成一个用于管理存储库的密钥对。如果没有,可以使用SSH - keygen <代码> 代码>例如:
<>之前,美元ssh-keygen -t rsa您现在可以初始化管理存储库。
<>之前,美元sudo -H -u git gitosis-init & lt;/道路//public_key.pub Git初始化的空仓库在gitosis-admin.git//电脑/gitosis/存储库 在srv/gitosis/仓库/gitosis-admin。git/中重新初始化现有的git仓库<强>注意:强>在某些情况下,这可能会导致此类错误:
OSError: [Errno 13], Permission 否认:“//,gitosis”
原因可能是git主目录没有正确设置。通过手动设置来修复它:
# usermod -d /, srv /, gitosis git
此外,此命令创建<代码>/电脑/gitosis/存储库> 代码将存储实际托管存储库的目录。
在管理存储库初始化完成后,禁用用户git的基于密码的ssh登录可能是合理的。
要实现这一点,添加
匹配用户git 密码验证号
在……的最后,<代码>/etc/ssh/sshd_config 代码>
如上所述,通过将提交推送到<代码> gitosis-admin> 代码存储库来配置Gitosis 。要克隆此存储库(使用Gitosis !),请运行:
<>之前,美元git clone git@your.git.server: gitosis-admin。git在<代码> gitosis-admin> 代码存储库中,您将看到两件事:
- <李>
<代码> gitosis.conf> 代码,——Gitosis和存储库权限的配置文件
李> <李><代码> keydir> 代码,——包含每个用户公用密钥的目录
李>要修改存储库或用户,或配置Gitosis,只需提交克隆中的更改并将其推回到服务器。
您可以在/usr/share/doc/Gitosis中找到一些示例配置文件。
[Gitosis的) gitweb =,是的 (repo foobar) 时间=description foobar的Git仓库 时间=owner 用户 (组开发者) 时间=members user1 user2 (组管理员) members =user1 (组gitosis-admin] writable =gitosis-admin members =@admins (组foobar) 可写=foobar members =@devs (麦田组) writable =free_monkey 会员=jdoe (组部署者) writable =free_monkey 时间=readonly monkey_deployer
这定义了一个名为“free_monkey”的新组,它是一个任意字符串。“jdoe”是麦田的成员,可以访问“gitosis”存储库。“monkey_deployer”键将只能访问“free_monkey”。
将此添加到gitosis。会议中,提交并推送它:
<>之前,美元git commit -a - m”允许jdoe写入访问free_monkey” 美元,git 推动现在,用户“jdoe”可以访问名为“free_monkey”的存储库,但是我们还没有创建一个存储库。我们将做的是在本地创建一个新的存储库,在Git服务器上进行初始化,然后推送它:
<>之前,美元mkdir free_monkey 美元,cd free_monkey 美元,git init 美元,git remote  add origin git @ YOUR_SERVER_HOSTNAME: free_monkey。git做一些工作,git添加和提交文件
<>之前,美元git push origin 主:refs /, heads /,主人