git服务端的管理工具用过2个,一个gitlab,一个是gitolite,
1,gitlab功能强大,有web管理界面,反正是各种方便吧,请参考:linux gitlab nginx 安装 配置 详解,但是gitlab安装比较麻烦
2,gitolite,安装非常简单,功能也比较简单,基本需要能满足,创建仓库,分配权限,总体来说还不错。
如果频繁的创建仓库,以及人员变更,用gitlab比较合适的,反之gitolite比较合适。
一,安装GIT
# yum install perl openssh git
在这里要注意,所有以#开头执行的命令都root账号,以$开头的命令都非管理账号
二,安装gitolite
1,创建git用户
# adduser git
# passwd git
2,切换到git用户,创建安装目录
# su – git
$ cd ~
$ mkdir bin
3,克隆gitolite源码
$ git clone https://github.com/sitaramc/gitolite.git
4,生成管理员的公钥和私钥,用root为管理员
$ exit //退出切换到root,直接su root要密码
# ssh-keygen //生成公钥和私钥
# cp /root/.ssh/id_rsa.pub /tmp/admin.pub
5,安装gitolite
# su – git
$ /home/git/bin/gitolite setup -pk /tmp/admin.pub
6,管理员下载管理库
$ exit //退出切换到root,直接su root要密码
# git clone [email protected].*.*:gitolite-admin.git
三,添加测试账户
# adduser tank
# passwd tank
# su - tank
$ ssh-keygen
生成该用户的公钥和私钥,我们也可以用tortoisegit中的PuttyGen,来生成公钥和私钥,
linux下用ssh-keygen生成的私钥与PuttyGen生成的私钥是不能通用的,如果想通用就要转换一下
linux 私钥 另存为windows下的ppk
linux 私钥 另存为windows下的ppk
四,添加仓库,并配置权限
1,将公钥加到管理库
# cp /home/tank/.ssh/tank.pub /root/gitolite-admin/keydir/
2,修改配置文件,并赋予权限
# vim /root/gitolite-admin/conf/gitolite.conf
@test=zhangying tank test //定义个组,多个人员,空格隔开。组最好都放到顶部,集中好管理
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
repo blog //定义的仓库名,也就是[email protected].*.*:blog.git
RW+ = @test //读写
repo test
R = @test //只读
3,将用户信息加到管理库
# /root/gitolite-admin
# git add *
# git commit -m "add tank"
# git push
这样服务器端就搭建好了,不管是linux下切换到tank用户进行clone等,还是在windows下用tortoisegit来clone等,都是可以的。
使用 gitolite 管理 git 服务器
gitolite:2.2-1
服务器端和客户端都是ubuntu linux
由于gitosis不再更新,打算迁移到gitolite。由于项目的用户不多,这里就不做详细的迁移,仅安装好gitolite后重新配置允许访问的用户,原版本库甚至不用移动,但是gitolite-admin库建议重新克隆并推送一次,以免管理出错。
通过apt安装,gitolite使用SSH key来认证用户,但用户不需要在主机上添加用户,而是使用服务器上的一个受限用户git。 安装的过程需要在客户端和服务器之间切换,留意操作步骤之前的说明。
服务器端(ip:192.168.1.254)
1.安装git
sudo apt-get install git-core
2.安装gitolite
sudo apt-get install gitolite
这里使用软件源中的2.2-1,最新的在 https://github.com/sitaramc/gitolite 上。
3.创建git用户
sudo adduser --system --shell /bin/sh --gecos 'git user' --group --disabled-password --home /home/git git
如果原来gitosis就有创建的,这里可以不用。
4.检查以上是否正常 ^_^
客户端(也需要先安装 git)
5. 在 gitolite 管理员的机器上生成 密钥,把公钥重命名为comet.pub,这里用scp传到服务器上
ssh-keygen -t rsa
mv id_rsa.pub comet.pub
scp comet.pub [email protected]:comet.pub
注意:这里的公钥文件comet.pub只有一行内容,如果是在windows中用puttygen生成的会有多行,在后面初始化的时候会提示:
WARNING: a pubkey file can only have one line (key); ignoring comet.pub
Perhaps you're using a key in a different format (like putty/plink)?
If so, please convert it to openssh format using 'ssh-keygen -i'.
If you want to add multiple public keys for a single user, use
"[email protected]" file names. See the "one user, many keys"
section in doc/3-faq-tips-etc.mkd for details.
6.在 ~/.ssh/config 添加以下内容,以便连接到服务器
Host 192.168.1.254
Compression yes
IdentityFile ~/.ssh/id_rsa
服务器端
7.使用上面的 comet.pub 初始化 gitolite
先切换到git用户,再进行
su - git
gl-setup /home/comet/comet.pub
creating gitolite-admin...
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
creating testing...
Initialized empty Git repository in /home/git/repositories/testing.git/
[master (root-commit) 0aa63a9] start
2 files changed, 6 insertions(+)
create mode 100644 conf/gitolite.conf
create mode 100644 keydir/comet.pub
初始化是根据/usr/share/gitolite/conf/example.conf 和 example.gitolite.rc 在/home/git下生成 .gitolite.rc,.gitolite,projects.list,repositories ,生成 gitolite-admin 和 testing 两个版本库,并在.ssh/authorized_keys中加入comet.pub文件。
客户端
8.获取服务器上的 gitolite-admin 项目,会有keydir和conf两个文件夹
git clone [email protected]:gitolite-admin
由于前面已经把comet用户的公钥加入git用户.ssh/authorized_keys中,这里是不需要git密码的。
注意:这里的gitolite-admin是git用户根目录中的repositories/gitolite-admin,不能用绝对路径,如:/srv这样的,但可以做软链接过去。
9.添加新组jichuteam、用户jichu、项目jichu,并推送到远程服务器
注:如果客户端是windows,使用Puttygen生成公钥和私钥:参数为SSH-2 RSA,1024位,按需加上密码。
如果之前是使用ssh-keygen生成的,在这里直接Load private key,然后save private key,保存为ppk格式才能用。
复制puttygen显示的公钥保存为*.pub文件,注意不是"save public key",保证公钥文件只有1行内容,否则不正确。把公钥给git的管理员,让他用gitolite-admin的方法把公钥加入git服务器,并设置好对应项目的权限。
在新的客户端生成密钥,并把公钥放到 gitolite-adminkeydir ,这里是Admin.pub
cd gitolite-admin/conf
vi gitolite.conf
修改为下面内容,其中repo是对应的项目版本库,RW+表示可读写,Admin是 Admin.pub 的文件名,表示用户,多个用户用空格隔开。
repo gitolite-admin
RW+ = comet
repo testing
RW+ = @all
repojichu
RW+=comet Admin
git push
10.到其他地方建立项目根目录,并设置默认用户和邮箱,在.git/config添加master主分支和远程服务器URL
mkdir jichu
cd jichu
git init
git config user.name Comet
git config user.email [email protected]
git remote add master [email protected]:jichu.git
11.在 jichu 目录下进行开发,这里新建了 log.txt(一定要有新文件),提交到index,加上"initial import"信息并提交到本地仓库,最后是推送到远程服务器。
echo "begin develop" > log.txt
git add .
git commit -a -m "initial import"
git push master master
服务器端
12.在服务器的 /home/git/repositories/ 可以看到有 jichu.git 的版本库。
太极熊猫2百度版 安卓版v1.7.1
下载黎明觉醒应用宝版 安卓版v1.111.1
下载暗影格斗3国际版 (Shadow Fight 3)最新版v1.40.3
下载王者战魂华为版 安卓版v3.6.1
下载放置魔法学院免广告版 v2.9.5
放置魔法学院内置Mod菜单是游戏的破解版本,在该版本中为玩家
万乘之国qq版本 安卓版v1.0.5
万乘之国qq版本是一款极具魅力的策略游戏,玩家们可以通过不同
动物餐厅国际服无限内购版 v12.9
动物餐厅国际服免广告版是游戏的破解版本,在该版本中为玩家去除
欧洲卡车司机 安卓版v3.2
欧洲卡车司机是款模拟经营游戏,这款游戏的画面还是蛮逼真的,给
疯狂大酒店 (Grand Hotel Mania)最新中文版v4.10.0.20
疯狂大酒店(Grand Hotel Mania)是一款好玩的