基于linux的Git平台的部署与使用

  1. 系统环境
#cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)
  1. 安装git
##yum安装git
#yum -y install git
  1. 创建git用户及设置密码
#useradd git
#passwd git
  1. Gitolite使用说明 Gitolite管理的方式是给你一个特殊的仓库,修改,提交,推送到服务器就可以了,这个仓库只可以管理员访问,现在把管理员的公钥复制到服务器上(可以和Git服务器在同一台服务器上也可以在不同的服务器上)
  2. 管理员公钥复制
#su - git
$ pwd
/data/git  (可以在其他目录下创建,最好在git账户的家目录下)
$ touch admin.pub
将管理员的公钥放到admin.pub文件里(只能放一行,即只能有一个管理员账号)
  1. 安装Gitolite和配置
##在git用户上进行安装
#gitolite will install here
$ pwd
/data/git
$ mkdir bin  (最好在git账户的家目录下)
#get the source code
$ git clone git://github.com/sitaramc/gitolite.git
#install
$ ~/gitolite/install -to ~/bin
#setup
$ ~/bin/gitolite setup -pk ~/admin.pub
$ ls
admin.pub  bin  gitolite  projects.list  repositories
  1. 管理用户进行测试
##以下操作均在mac上进行!
##管理员公钥添加的是我mac本的
➜  ~ ssh -p 58000 git@192.168.100.1
##应该看到类似这样的输出:
hello git, this is git@desktop running gitolite3 v3.04-20-g6328ec2 on git 1.7.9.5

  R W   gitolite-admin
Connection to localhost closed.closed
##将管理仓库克隆下来管理Git服务器
➜  git clone ssh://git@192.168.100.1:58000/gitolite-admin (非标准ssh端口)
##将会看到如下两个目录文件:
➜  gitolite-admin git:(master) ls
conf   keydir
  1. 添加用户
##以下操作均在mac上进行
git:(master)   pwd
git:(master)   /Users/wtf/gitolite-admin/keydir
git:(master)   touch shiyan.pub
##将用户shiyan的公钥写入shiyan.pub文件里!
git:(master)   vim shiyan.pub
git:(master)   pwd
git:(master)   /Users/wtf/gitolite-admin
git:(master)   git add keydir
git:(master)   git commit -m "add new user shiyan"
git:(master)   git push
git:(master)   ls
shiyan.pub
  1. 添加/创建仓库
##我们现在要创建一个名为datagrand1的仓库,让刚创建的datagrand1有读写权限,并将其给予用户shiyan使用。
git:(master)  pwd
/Users/wtf/gitolite-admin/conf
##添加类似下面这内容进去
repo datagrand1
    RW+    =   shiyan
保存,提交并推送到远和服务
git:(master)  pwd
/Users/wtf/gitolite-admin
git:(master)  git add -u
git:(master)  git commit -m 'add new repo datagrand1 and assign RW+ to shiyan'
git:(master)  git push
##推送的时候应该看到类似这样的信息
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 395 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Initialized empty Git repository in  xxxxx
To git@desktop:gitolite-admin
   6de90b8..52737aa  master -> master
	 ##注意remote开头的一行,它已经帮你创建了这个仓库
  1. 使用clone仓库
##在shiyan账户的终端上进行操作
$ git clone ssh://git@192.168.100.1:58000/datagrand1 (非标准ssh端口)