🍁个人主页:微枫Micromaple
✨本期专栏:《0到1项目搭建》欢迎订阅学习~
在企业开发过程中,我们需要搭建公司内部的Git版本控制系统,开源免费的 GitLab 成为了我们的选择。本文详细讲解了分布式版本控制系统 GitLab 的搭建、用户配置以及如何进行版本控制。
目录

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是 Linus Torvalds 为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
在企业内部开发过程中,可能不会去选择使用第三方代码托管平台,但是我们又希望使用 Git 这个强大的分布式版本控制系统,开源的 GitLab 成为了我们的选择,最重要的是拥有社区免费版本。
本文使用 Docker 简单高效的安装部署方式,无需繁琐的配置。
推荐配置:2核4G。
1)、创建目录
mkdir -p /usr/local/docker/gitlab
2)、进入目录
cd /usr/local/docker/gitlab
3)、创建 docker-compose.yml
vim docker-compose.yml
内容如下:
version: '3'
services:
web:
image: 'twang2218/gitlab-ce-zh'
restart: always
hostname: '192.168.110.158'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.110.158:8080'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
unicorn['port'] = 8888
nginx['listen_port'] = 8080
ports:
- '8080:8080'
- '8443:443'
- '2222:22'
volumes:
- ./config:/etc/gitlab
- ./data:/var/opt/gitlab
- ./logs:/var/log/gitlab
hostname:指定当前部署服务器IPexternal_url:更改为当前部署服务器IP4)、启动容器
docker-compose up -d
等待下载安装启动,根据网络情况、机器配置等待时间不一,耐性等待启动完成。
5)、启动完成,配置账户密码,登录
启动完成后,浏览器访问如下地址:
http://部署服务器IP:8080/
会提示给新账户创建密码

设置一个记得住的密码即可,密码最短为8位。配置完成后登录。

用户名为root,密码为刚刚设置的密码
登录成功,界面如下:

我们一般不使用root用户来进行项目创建,需要创建一个管理员账户来进行项目管理以及给其他开发人员分配账户。
步骤如下:
点击管理区域->点击新建用户

填写姓名、用户名、电子邮箱等信息,根据需要分配给用户权限

创建完成后,需要重置密码
点击管理区域->点击右侧用户->找到刚刚创建的账户->点击编辑

找到密码栏目->输入密码->点击保存

退出root账户,登录新账户

需要设置新密码

新账户登录成功

一般搭建在企业内部使用,不启用注册功能。

项目托管,在群组下以一个项目对应一个模块的方式进行托管,后续可以更加方便的对每个模块进行持续集成。
当然,也可以以项目的方式对整个项目进行托管,以具体情况具体分析。
具体模块对应描述:
| 模块 | 描述 |
|---|---|
my-project-dependencies | 统一的依赖管理 |
my-project-common | 通用模块 |
my-project-generator | 代码生成器模块 |
my-project-server | 项目服务模块 |
由于项目是多模块项目,需要创建一个群组

输入群组名称,点击创建

以my-project-dependencies为例
进入群组->点击新建项目

输入项目名称、描述->勾选初始化仓库->点击创建项目


其他三个模块my-project-common、my-project-generator、my-project-server步骤跟上述雷同,最终创建完成效果图如下:

我们是根据每个模块创建的项目,所以我们需要一个一个的将项目通过git克隆出来。
1)、首先克隆my-project-dependencies,点击选择my-project-dependencies

2)、复制项目地址

3)、使用TortoiseGit进行克隆

提示需要输入用户名

提示需要输入密码

克隆成功

4)、其它模块
其它模块操作雷同,最终呈现效果如下图:

5)、项目完善
我们需要将之前研发的模块下的文件拷贝至该目录所对应的项目模块,比如my-project-dependencies,我们只需要将pom.xml拷贝过来即可,我们可以将原来项目的.gitignore文件拷贝至该目录下,因为我们目前项目托管状态是以单个模块来进行的。
效果呈现如下图:
my-project-dependencies

my-project-common

my-project-generator

my-project-server

6)、提交推送
项目都已经完善后,将增加的内容提交至GitLab,交给其进行托管
以my-project-dependencies为例。

提交成功

其他三个项目模块my-project-common、my-project-generator、my-project-server步骤跟上述雷同,逐个操作提交推送即可。
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注