大家好,我是SuieKa,本博文以学习笔记为主,若有瑕疵,请多多指教!!!
是一个利用Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护web应用程序变得简单的框架。
GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab中文网:https://about.gitlab.com/
GitHub网站: https://github.com/
首先我们看看他们的网页区别
GitHub:
GitLab:
相同点:
二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化于存储的场所。
不同点:
1、GitHub:如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比亍GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,迚一步的提升安全性;可以设置获取到团队整体的改迚迚度;通过innersourcing让不在权限范围内的人访问不到该资源。
总结:从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。
安装Gitlab之前先讨论git相关概念:
git 是一种版本控制系统,是一个命令,是一种工具。 gitlib 是用于实现git功能的开发库 。
github是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放 。
gitlab是一个基于git实现的在线代码仓库托管软件,一般用于在企业内部网络搭建git私服务器。
(最好使用稳定的版本,注重稳定为主)
下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/
实验环境:CentOS8.1虚拟机内存调至6G以上(运行Gitlab+Jenkins很是吃内存)
[21:06:30 root@wang-tuxing ~]#cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
1、安装Gitlab需要的组件
yum -y install curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python-utils
###########在centos8一下下载的为policycoreutils-python,其余不变
2、gitlab-ce-12.10.1的安装
[21:24:49 root@wang-tuxing software]#rpm -ivh gitlab-ce-12.10.1-ce.0.el8.x86_64.rpm
警告:gitlab-ce-12.10.1-ce.0.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID f27eab47: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:gitlab-ce-12.10.1-ce.0.el8 ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
由于是rpm方式安装,安装的包的位置默认是在/opt/下
[21:31:20 root@wang-tuxing software]#rpm -ql gitlab-ce | more
/opt
/opt/gitlab ####这个包是安装在opt上的,不是在以前源码安装的路径:/usr/local
...........................
[21:32:41 root@wang-tuxing software]#ls /opt/gitlab/
bin embedded init LICENSES sv version-manifest.txt
dependency_licenses.json etc LICENSE service version-manifest.json
3、配置gitlab域名
[21:33:58 root@wang-tuxing software]#vi /etc/gitlab/gitlab.rb
改:external_url 'http://gitlab.example.com'
改为:external_url 'http://192.168.1.107' ###########本机centos8的IP地址
注意:这里必须修改,不然后后期访问时,用户到地址是:http://gitlab.example.com/xxxx ,根本不能访问。 修改后获得是: http://你的IP地址/xxxx
应用重新配好的配置并重启GitLab
[21:41:39 root@wang-tuxing software]#gitlab-ctl reconfigure
#####重新配置应用程序
重新配置应用程序。修改了gitlab服务配置文件后,都需要执行一下这个命令。让各个服务的配置文件,重新加载一下配置文件。这里等个2分钟左右。
使用gitlab-ctl查看gitlab状态
[21:47:58 root@wang-tuxing ~]#gitlab-ctl status
run: alertmanager: (pid 6702) 524s; run: log: (pid 6379) 572s
run: gitaly: (pid 6581) 525s; run: log: (pid 5784) 653s
run: gitlab-exporter: (pid 6580) 525s; run: log: (pid 6269) 591s
run: gitlab-workhorse: (pid 6546) 526s; run: log: (pid 6110) 607s
run: grafana: (pid 6724) 523s; run: log: (pid 6496) 539s
run: logrotate: (pid 6139) 601s; run: log: (pid 6179) 598s
run: nginx: (pid 6122) 603s; run: log: (pid 6136) 602s
run: node-exporter: (pid 6572) 526s; run: log: (pid 6196) 594s
run: postgres-exporter: (pid 6715) 523s; run: log: (pid 6408) 566s
run: postgresql: (pid 5868) 648s; run: log: (pid 5914) 647s
run: prometheus: (pid 6611) 524s; run: log: (pid 6336) 578s
run: redis: (pid 5692) 660s; run: log: (pid 5707) 659s
run: redis-exporter: (pid 6595) 525s; run: log: (pid 6299) 584s
run: sidekiq: (pid 6054) 615s; run: log: (pid 6070) 612s
run: unicorn: (pid 6026) 617s; run: log: (pid 6051) 616s
要把防火墙清空规则,另外内存要大于4G,就怕之后的操作内存不足报错
[21:49:53 root@wang-tuxing ~]#iptables -F ###清空规则
[21:50:33 root@wang-tuxing ~]#free -m
total used free shared buff/cache available
Mem: 7853 2906 4355 79 591 4800
4、登录gitlab
使用http://IP地址/users/sign_in
如果访问不了,记得关闭防火墙
[21:51:11 root@wang-tuxing ~]#systemctl stop firewalld
[21:55:04 root@wang-tuxing ~]#systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
第一次登录gitlab,需要为root用户修改密码,root用户也是gitlab的超级管理员,输入你的新密码 (密码设置的过于简单可能也会报错)
改成密码后
使用root用户和刚才创建的密码登录gitlab
到这一步就已经安装成功了,总的来说比源码安装的软件快的多。也轻松得多
gitlab-ctl的使用:
关闭gitlab: # gitlab-ctl stop
启动gitlab: # gitlab-ctl start
重启gitlab: # gitlab-ctl restart
gitlab主配置文件:/etc/gitlab/gitlab.rb //可以自定义一些邮件服务等
日志地址:/var/log/gitlab/ // 对应各服务
服务地址:/var/opt/gitlab/ // 对应各服务的主目录
仓库地址:/var/opt/gitlab/git-data //记录项目仓库等提交信息
重置配置:gitlab-ctl reconfigure //不要乱用,会重置为最原始的配置的
重启服务:gitlab-ctl stop/start/restart //启动命令
1、设置中文
最新的GitLab已经官方支持中文了
而且设置是针对每个用户的,不是全局的:
1、点击右上角头像
2、Settings
3、点击右侧 Preferences
4、右侧拉到下面
5、Localization
6、Language,设置"简体中文"
7、保存
8、刷新页面
(一)、创建群组
1、新建项目前,先创建项目所在的组(也就是说这个项目文件是保存在哪个组里)
点击创建群组即可
(二)、新建项目
点击下面的创建项目即可
新一点的版本就是好,里面也有命令行指引
对于创建用户差不多也是一样的操作,创建完成后就可以与退出重新使用新用户登录
1、安装git并clone代码
[00:28:23 root@wang-tuxing my]#dnf -y install git
复制第一个链接,ssh方式需要输入密码。
[00:28:43 root@wang-tuxing my]#git clone http://192.168.1.104/wang/my-web
正克隆到 'my-web'...
warning: 重定向到 http://192.168.1.104/wang/my-web.git/
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 完成.
//使用http和ssh均可以实现下载
[00:30:22 root@wang-tuxing my]#ls
my-web
git常用命令:
git config --global user.name “name“ #设置全局用户名
git config --global user.email mail #设置全局邮箱
git config --global --list #列出用户全局设置
git add index.html #添加文件到暂存区
git commit -m “描述内容“ #提交文件到工作区
git status #查看工作区的状态
git push #提交代码到git服务器上
git pull #获取代码到本地
git log #查看操作日志
vim .gitignore #定义忽略文件
git reset --hard HEAD^ #git版本回滚, HEAD为当前版本,加一个^为上一个,^^为上上一个版本
git reflog #获取每次提交的ID,可以使用--hard根据提交的ID迚行版本回退
git reset --hard 5ae4b06 #回退到指定id的版本
git branch #查看当前所处的分支
git checkout -- file #从服务器更新某个那文件覆盖本地的文件
就这样吧,做做笔记写在博客上也挺好哈哈,以后还可以做做参考啥的