gitlab
git是一个分布式的代码版本管理软件。用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
1.版本控制
是指对软件开发过程中各种程序代码,配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
2.常用的版本控制工具:
Git:是分布式版本控制系统,它没有中央服务器,每个人的电脑就是一个完整的版本库,这样工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。(Linux)
SVN: 是一个集中式开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。(Win)
3.git、gitlab、GitHub的简单区别
git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面
gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发
github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库
4.gitlab 安装
GitLab常用命令
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
安装依赖包
yum -y install epel-release
yum -y install git curl openssh-server openssh-clients postfix cronie policycoreutils-python
启动postfix服务(邮件服务)并设置开机自启
systemctl restart postfix
systemctl enable postfix
cd /usr/src/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.2.1-ce.0.el7.x86_64.rpm
安装gitlab
rpm -ivh gitlab-ce-11.2.1-ce.0.el7.x86_64.rpm
修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.99.121'
#将此处设为gitlab的服务器IP地址或者域名
重载配置文件并重启gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
查看当前的gitlab版本
head -1 /opt/gitlab/version-manifest.txt
设置管理员密码
1.重置root密码之前,需先使用root用户登录到gitlab所在服务器。并且进入gitlab容器中,使用以下命
令启动Ruby on Rails控制台。
gitlab-rails console -e production
2.等待控制台加载完毕,有多种找到用户的方法,您可以搜索电子邮件或用户名。
user = User.where(id: 1).first
或者
user = User.find_by(email:'admin@example.com')
3.现在更改密码(至少8位)。
user.password = '新密码'
user.password_confirmation = '新密码'
4.注意,必须同时更改密码和password_confirmation才能使其正常工作,最后别忘了保存更改。
user.save
[root@xcz742 src]# gitlab-rails console -e production
-------------------------------------------------------------------------------------
GitLab: 11.2.1 (2d6c1c6)
GitLab Shell: 8.1.1
postgresql: 9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):002:0> user.password = 'xcz12345'
=> "xcz12345"
irb(main):003:0> user.password_confirmation = 'xcz12345'
=> "xcz12345"
irb(main):004:0> user.save
Enqueued ActionMailer::DeliveryJob (Job ID: fa5f65fe-c200-4b7b-bc5e-b5f14f01598f) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
5.gitlab管理
在浏览器中使用gitlab服务器的IP访问,页面如下图所示: