公司之前用的是SVN进行项目管理,由于SVN的代码库是集中管理的,不支持离线更新,后来把SVN迁移到git上面,git采用的是分布式的体系机构,用户完全可以脱离git服务器而在本地查看,编写和提交代码。后来由于git没有web页面,所有的操作都是在后台操作,相比之下,gitlab更是一款高端洋气上档次的git项目管理软件,用户可以通过WEB页面添加,删除项目|用户|SSHKEY等等,而且可以通过浏览器查看,修改源代码。
Gitlab简介:Gitlab是一个用Ruby on Rails开发的开源项目管理程序,可以通过WEB界面进行访问公开的或者私人项目。它和Github有类似的功能,能够浏览源代码,管理缺陷和注释。gitlab官方文档支持Debian/Ubuntu系统,我的gitlab服务器是ubuntu-12.04.2,具体的安装请查看gitlab官方安装文档。
1)在mysql上面创建gitlabhq_production数据库并授权。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#创建gitlabhq_production数据库并授权
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE
`utf8_unicode_ci`;
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON
`gitlabhq_production`.* TO
'gitlab'
@
'192.168.1.230'
identified by
'gitlab!@#'
;
#修改gitlab数据库配置文件
cd
gitlab
sudo
-u git
cp
config
/database
.yml.mysql config
/database
.yml
sudo
cat
config
/database
.yml
production:
adapter: mysql2
encoding: utf8
reconnect:
false
database: gitlabhq_production
pool: 10
username: gitlab
password:
"gitlab!@#"
host: 192.168.1.243
#初始化gitlab数据库
sudo
-u git -H
chmod
o-rwx config
/database
.yml
sudo
-u git -H bundle
exec
rake gitlab:setup RAILS_ENV=production
|
2)gitlab默认安装后的用户名:admin@local.host,密码:5iveL!fe
,用户第一次登陆后需要修改密码。
3)gitlab邮件提醒配置,创建账号,添加SSH KEY的时候都会有邮件提醒给用户。
修改全局配置文件git/.gitconfig文件,这里的email是gitlab发送邮件的Email地址。
配置gitlab的发送邮件的SMTP服务,gitlab/config/environments/production.rb。
当管理员给用户创建账号时,用户邮箱里面会自动收到gitlab发送的邮件。
4)gitlab URL配置。
1
2
3
4
5
6
7
|
#复制gitlab的配置文件
sudo
cp
gitlab
/lib/support/nginx/gitlab
/etc/nginx/sites-available/gitlab
sudo
ln
-s
/etc/nginx/sites-available/gitlab
/etc/nginx/sites-enabled/gitlab
#编辑配置文件/etc/nginx/sites-enabled/gitlab
server {
listen *:80 default_server;
server_name 主机名;
|
5)修改git repositories存储路径,默认保存在/home/git/repositories路径下面。
1
2
3
4
|
cat
gitlab-shell
/config
.yml
# Repositories path
# REPOS_PATH MUST NOT BE A SYMLINK!!!
repos_path:
"/data/gitlab/repositories"
|
6)用户登录成功后,在Profile里面设置账号,修改密码,设置邮件提醒(Notifications),添加SSH Kyes,设置用户浏览时的效果(Design)等。
7)创建git项目,相当于git里面的git init --bare命令。项目类型为Public,即任何人都可以查看。
8)项目创建完毕后,可以通过下面的方法设置,创建和提交代码到项目库。
9)通过soucetree把git里面的代码push到gitlab里面,首先在sourcetree Settings添加gitlab remote origin地址。
10)通过Sourcetree把项目push到远端的gitlab remote origin 。
11)gitlabWEB页面测试,由于sfzhang.git是public,用户不用登陆就可以浏览。
总结:
1)gitlab搭建完毕后,用git clone 的时候出现下面错误(This error occurs when sending data over HTTP which is larger than Git’s post buffer (by default 1 MB),在nginx配置文件http下面添加client_max_body_size 500m;即可。
1
2
3
|
POST git-receive-pack (chunked)
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
|