gitlab的搭建与使用

鉴于功夫网的封锁能力越来越强,github也难免遭受误伤,周围的同事经常往github上push时超时。故需要在本地搭建一个git服务器,并将本地git服务器上的提交原封不动的push到github。在参考借鉴了许多方案,选择了gitlab这一开源、高仿github的解决方案。

gitlab的搭建

bitnami上有集成好的一键安装包,选择好操作系统后直接下载。点我下载
安装很简单,给下载的bitnami-gitlab-7.6.2-0-linux-x64-installer.run加上可执行权限后直接执行就行,中途输入一些参数,就静静等待安装完成了(赞一下bitnami,省了不少麻烦)。

1
2
chmod +x bitnami-gitlab-7.6.2-0-linux-x64-installer.run
./bitnami-gitlab-7.6.2-0-linux-x64-installer.run

从github上导入已有项目

用安装时输入的账号与密码(此账号为管理员账号)登陆http://192.168.11.160:80,新建一个group,从github上导入项目,并设置镜像仓库和hook脚本,即可开始美妙的gitlab之旅了。

导入完成后,就是这个样子。

gitlab的其他功能,基本上与github大同小异,大家可以慢慢摸索就好。

设置github为远程仓库

注意:以下操作需切换到git用户

1.生成密钥对,并将公钥添加到github上。

1
sudo -u git ssh-keygen

使用cat /home/git/.ssh/id_rsa.pub得到公钥字符串,复制添加到github账户中。

这样就把gitlab服务器上的公钥添加到github上了。

2.编辑ssh配置文件

1
vi /home/git/.ssh/config

修改成如下内容:

1
2
3
4
Host github  
IdentityFile /home/git/.ssh/id_rsa.pub
HostName github.com
User git

使用ssh -T git@github.com测试配置是否正确。如出现You've successfully authenticated, but GitHub does not provide shell access.字样,说明配置ok。

3.为项目添加github镜像。
打开/opt/gitlab-7.6.2-0/apps/gitlab/repositories/incito/chenwei-private.git/,执行以下命令为仓库添加gitgub镜像。

1
git remote add --mirror github github.com:incito/chenwei-private.git

4.添加hooks脚本
打开/opt/gitlab-7.6.2-0/apps/gitlab/repositories/incito/chenwei-private.git/,创建custom_hooks文件夹,添加post-receive脚本。
脚本内容如下:

1
2
3
#!/bin/bash

git push -q github

给脚本文件增加可执行权限

1
chmod +x post-receive

测试提交

在eclipse里,把远程地址换成gitlab里面的地址,提交一个测试用的commit。

push到远程仓库

验证