前言

一开始,打算在Windows上安装git服务,折腾了一天,在Copssh(win2008、win7、win2003)上总是配置不成功,最终无功而返,最后只好先放弃Windows了,以后有时间再研究研究。

当然Windows版的还有其它软件可用,比如Gitstack、Gitblit等,不想搞Windows版的了,不是这个限制就是那个问题,麻烦多,所以直接上Linux版的。

下面一段是Linux工具,引用自http://blog.chinaunix.net/uid-15174104-id-3843570.html

在Git服务管理工具这个领域,主要有三种流行的方案,它们分别是:

Gitosis - 轻量级,开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。

Gitolite - 轻量级,开源项目,使用SSH公钥认证,能做到分支级的权限控制。

Git + Repo + Gerrit - 超级重量级,集版本控制,库管理和代码审核为一身。可管理大型及超大型项目。

 注:其实还有很多,如:gitlab、gitblit、gitbucket、gogs,请参考“几个Git仓库开源软件的比较” http://dz.sdut.edu.cn/blog/subaochen/2016/01/github_like_softwares/

安装

Step 1 安装git

 

Step 2建立一个git用户,并做初步配置

 

Step 3生成一对公钥证书(空密码则直接回车)

 

Step 4切换至刚建的git用户,安装gitolite

 

Step 5配置gitolite

 

Step 6管理gitolite

 

下面,我们用个例子说明如何管理git仓库。

1、  最初的conf/gitolite.conf内容如下:

 

2、  然后我们在gitolite.conf内容下面添加如下内容

 

3、  @ android_group = zhangsan lisi,定义了@android_group组,组员是zhangsan和lisi两个人,当然,组里也可以包含另一组,人员或组之间用空格分开,我们修改后如下:

 

4、  repo androidapp,定义了一个androidapp仓库,该仓库读写权限为@android_group,最后push回服务器后,我们就可以在本地执行

 

两次命令来首次推送本地仓库到远程服务器仓库,下次有修改再推送时直接git push即可。

 

Step 7给公司里每位童鞋分配私钥证书

1、  生成证书

2、  将公钥id_ras.pub改名为童鞋名字全拼,比如zhangsan.pub,并拷到gitolite-admin仓库的keydir目录下;

3、  将私钥id_rsa飞Q发给相应的童鞋;

4、  重复1到3,直到全部发给每位童鞋;

5、  修改gitolite.conf,配置各个项目的访问权限;

6、  推送gitolite-admin修改后的内容到服务器;

7、  完成分配工作。

注:人员名字全拼为公钥文件名,同时也是gitolite.conf里的用户名;私钥id_rsa让童鞋们放在C:\Users\Administrator\.ssh\目录下。

Administrator是系统登录名,如果你的不是这个名,那就改改。

当然了,也可以让童鞋们自己生成公钥对,然后把公钥统一发给我。

在Windows下使用git图形客户端

1、  安装Windows git,下载地址https://git-for-windows.github.io/,下载后一路next安装即可。

2、  安装TortoiseGit,TortoiseSVN的兄弟,下载地址https://tortoisegit.org/download/,也是一路next安装。

3、  配置TortoiseGit,参考其他文章即可,网上文章还是比较多的,比如下面这篇写得就很好http://blog.csdn.net/renfufei/article/details/41647937。