1 查看服务器是否已经安装了git
git --version
2 安装git
yum install perl openssh git
3 创建一个用户:
adduser --system --shell /bin/sh --create-home --home-dir /home/git git
# 进入git用户的home目录
cd /home/git
# 新建一个目录,用于存放git的全部仓库
mkdir repositories
# 设置该目录的所有权
chown git:git -R ./repositories
# 修改该目录的操作权限
chmod 700 ./repositories
4 生成一对公钥证书(空密码则直接回车)
# 可直接在服务器上生成,也可以在本地生成,在这里我直接在服务器上生成了。
ssh-keygen -t rsa
# 最后生成两个文件,分别为id_ras.pub(公钥) 和id_rsa(私钥)
# 将公钥移到/home/git/.ssh/目录下,注意,公钥文件名改了,公钥名对应gitolite里配置的用户名,admin我用于做系统管理员的账号名。
mv id_rsa.pub /home/git/.ssh/admin.pub
# 将私钥id_rsa用SFTP下载回到本地Windows的C:\Users\Administrator\.ssh\目录下,Administrator是我登录Windows的账号,你要改成自己电脑对应的目录下,用于本地git登录远程服务器。
5 切换至刚建的git用户,安装gitolite
su git
git clone git://github.com/sitaramc/gitolitemkdir -p $HOME/bin
# 安装gitolite
gitolite/install -to $HOME/bin
# 安装时报错,根据错误提示,百度了几下,安装相关的依赖
yum install wget perl-ExtUtils-MakeMaker gcc
wget http://www.cpan.org/modules/by-module/Data/Data-Dumper-2.154.tar.gztar xvzf Data-Dumper-2.154.tar.gz
cd Data-Dumper-2.154perl Makefile.PLmakemake install
6 配置gitolite
$HOME/bin/gitolite setup -pk admin.pub
# 完成后,在/home/git/repositories里面,生成两个仓库gitolite-admin.git和test.git,一个是管理仓库用的,另一个是测试用的;下面我们主要对gitolite-admin.git仓库进行操作,就可以管理服务器上的全部仓库了。
7 管理gitolite
git clone git@172.16.13.229:gitolite-admin
#完成后有两个目录,分别是conf和keydir,conf/gitolite.conf是用户、仓库的权限配置,keydir是放对应用户的公钥,修改好后push回服务器,就完成了管理操作。
8 给公司里每位童鞋分配私钥证书
1、 生成证书
ssh-keygen -t rsa –C “zhangsan@example.com”
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是系统登录名,如果你的不是这个名,那就改改。
当然了,也可以让童鞋们自己生成公钥对,然后把公钥统一发给我。
9 在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。
参考文档:https://www.cnblogs.com/waitfor/p/5484689.html