GitLab初体验

  1. 云栖社区>
  2. 博客>
  3. 正文

GitLab初体验

bisal 2016-09-12 17:22:57 浏览784
展开阅读全文

最近由于工作需要,开始设计和实现一些新的运维工具,打算使用git替代svn来管理代码,尝试一些不同的技术。

git和svn的区别网上有很多的介绍了,况且已经不是什么太新的技术,如下是一些简要说明。
(摘自:
http://blog.csdn.net/w13770269691/article/details/38705473/)

svn是集中化的版本控制系统, 只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

这里写图片描述

git是分布式的版本控制系统,每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

这里写图片描述

git领域最有名的就是Github,这里我们采用了一个开源版本,GitLab,搭建环境:
1.操作系统:Red Hat Enterprise Linux Server release 6.4 (Santiago)
2.GitLab安装包:gitlab-ce-8.11.5-ce.0.el6.x86_64.rpm

GitLab的两种安装方法:
摘自:https://segmentfault.com/a/1190000002722631
• 编译安装
优点:可定制性强。数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx。
缺点:国外的源不稳定,被墙时,依赖软件包难以下载。配置流程繁琐、复杂,容易出现各种各样的问题。依赖关系多,不容易管理,卸载GitLab相对麻烦。
• 通过rpm包安装
优点:安装过程简单,安装速度快。采用rpm包安装方式,安装的软件包便于管理。
缺点:数据库默认采用PostgreSQL,服务器默认采用Nginx,不容易定制。

采用rpm包安装是最快捷的方法,之前有些准备工作:

sudo yum install openssh-server
sudo yum install postfix
sudo yum install cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

安装rpm包:

rpm -ivh gitlab-ce-8.11.5-ce.0.el6.x86_64.rpm

修改配置文件/etc/gitlab/gitlab.rb,其中external_url = ‘http://git.example.com‘需要设为本机IP。

重新生效配置:

sudo gitlab-ctl reconfigure

此时就可以登录http://部署IP,账号:

Username: root 
Password: 5iveL!fe

可以自行重置密码操作。

这里写图片描述

再分享一个测试过程中碰见的小问题,
问题描述:
使用bisal用户创建了一个repository叫hellogitlab,又创建了一个phibisal用户,本地克隆了远程库:

git clone http://x.x.x.x/bisal/hellogitlab.git

打算用这个用户提交,

git push origin master
Username for 'http://x.x.x.x': phibisal
Password for 'http://phibisal@x.x.x.x':
Counting objects: 3, done.
Writing objects: 100% (3/3), 250 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to push code to protected branches on this p
roject.
To http://x.x.x.x/bisal/hellogitlab.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://x.x.x.x/bisal/hellogitlab.git'

再查看下分支的权限设置:
这里写图片描述
提示merge和push只有Masters角色可执行,phibisal的角色是Developers,因此禁止直行push操作。
这里写图片描述
所以需要将push的权限授予Developers即可。
这里写图片描述
再次执行push,

git push origin master
Username for 'http://x.x.x.x': phibisal
Password for 'http://phibisal@x.x.x.x':
Counting objects: 3, done.
Writing objects: 100% (3/3), 250 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://x.x.x.x/bisal/hellogitlab.git
   e1ea43e..cd850d6  master -> master

总结:
1.gitlab的rpm安装过程还是比较简单,数据库、rb都是默认安装了。
2.对于git的使用,强调和SVN最大的不同就是分布式,不会像SVN集中式下对于网络的强烈需求,这点还需要继续体验。

网友评论

登录后评论
0/500
评论
bisal
+ 关注