基于linux的Git平台的部署与使用
- 系统环境
#cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
- 安装git
##yum安装git
#yum -y install git
- 创建git用户及设置密码
#useradd git
#passwd git
- Gitolite使用说明 Gitolite管理的方式是给你一个特殊的仓库,修改,提交,推送到服务器就可以了,这个仓库只可以管理员访问,现在把管理员的公钥复制到服务器上(可以和Git服务器在同一台服务器上也可以在不同的服务器上)
- 管理员公钥复制
#su - git
$ pwd
/data/git (可以在其他目录下创建,最好在git账户的家目录下)
$ touch admin.pub
将管理员的公钥放到admin.pub文件里(只能放一行,即只能有一个管理员账号)
- 安装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
- 管理用户进行测试
##以下操作均在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
- 添加用户
##以下操作均在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
- 添加/创建仓库
##我们现在要创建一个名为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开头的一行,它已经帮你创建了这个仓库
- 使用clone仓库
##在shiyan账户的终端上进行操作
$ git clone ssh://git@192.168.100.1:58000/datagrand1 (非标准ssh端口)