前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitLab初体验

GitLab初体验

作者头像
bisal
发布2019-01-29 15:40:50
6960
发布2019-01-29 15:40:50
举报

最近由于工作需要,开始设计和实现一些新的运维工具,打算使用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包安装是最快捷的方法,之前有些准备工作:

代码语言:javascript
复制
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包:

代码语言:javascript
复制
rpm -ivh gitlab-ce-8.11.5-ce.0.el6.x86_64.rpm

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

重新生效配置:

代码语言:javascript
复制
sudo gitlab-ctl reconfigure

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

代码语言:javascript
复制
Username: root 
Password: 5iveL!fe

可以自行重置密码操作。

这里写图片描述
这里写图片描述

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

代码语言:javascript
复制
git clone http://x.x.x.x/bisal/hellogitlab.git

打算用这个用户提交,

代码语言:javascript
复制
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,

代码语言:javascript
复制
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集中式下对于网络的强烈需求,这点还需要继续体验。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档