发布网友 发布时间:2022-04-23 08:10
共1个回答
热心网友 时间:2022-06-18 04:24
方案一 基于SSH直接搭建 Git支持的协议主要是四种: 本地: 需要文件共享系统,权限不好控制 HTTP:速度慢 SSH:同时支持读写操作,不支持匿名的读取(Git默认协议) GIT:最快 从搭建的难易程度和特点综合筛选,最合适的还是ssh,并且大部分服务器上基本都有ssh服务,所以省去了不少麻烦。一个最基本的思路是给每一个人一个ssh帐号,这样大家就可以通过用户名和口令来访问了,但是显然这不是一个好的选择,这个做法有些多余,并且对于repo的权限很难管理。 在使用Github的时候,会利用rsa/sitaramc/gitolite $ mkdir -p $HOME/bin $ gitolite/install -to $HOME/bin $ gitolite setup -pk YourName port 22 identityfile ~/.ssh/admin 这样,当访问gitolite的时候就会自动根据配置文件执行,配置完成后可以根据下面的命令,将gitolite-admin转移到本地。 git clone gitolite:gitolite-admin.git 克隆完成后,可以发现,gitolite-admin下面有两个目录,其中conf保存配置文件,可以通过编辑里面的gitolite.conf文件,管理git服务器,keydir目录保存用户的公钥pub文件。 当讲修改后的repo 提交的时候,gitolite就会自动的应用这些配置,管理过程就方便了很多。 配置规则 打开gitolite.conf文件可以看到其中的示例: To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively. To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this: repo foo RW+ = alice RW = bob R = carol 上面的配置文件就是新建了一个repo foo,并且添加了三位项目成员,每一个人的权限不同。提交push后,管理便生效了。 可视化 可能会需要一个web界面来管理这些项目,目前知道的有三种方式: git源码中自带的组件,cgi脚本实现,使用gitolite服务 gitlab开源框架,基于ROR,新版本不再使用gitolite服务 FB开源PHP框架 phabricator,功能高端上档次