目录

一、安装gitlab需要的组件

二、下载地址

1、rpm包的方式安装gitlab

2、修改默认端口号、url地址

3、重载配置以及启动gitlab

4、启动gitlab服务报错

5、访问gitlab 报错502

6、卸载gitlab 

二、Git 用户信息

1、配置个人的用户名称和电子邮件地址:

2、查看配置信息

三、Gitlab基础操作

1、添加文件都暂存区

2、提交文件到版本库

3、查看暂存区版本

4、撤销暂存区文件

 5、版本回退

6、分支管理

7、删除远程分支


一、安装gitlab需要的组件

1、yum install curl policycoreutils openssh-server openssh-clients postfix

2、启动ssh服务&设置为开机启动

systemctl enable sshd && sudo systemctl start sshd

3、设置postfix开机自启,并启动,postfixzhichigit发新功能

systemctl enable postfix && systemctl start postfix

二、下载地址

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm

1、rpm包的方式安装gitlab

rpm -ivh  gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm

2、修改默认端口号、url地址

 vim /etc/gitlab/gitlab.rb 

修改gitlab访问地址和端口,默认80

external_url 'http://192.168.190.128'(你本机的IP)

修改gitlab默认端口为8099:

第一步:修改/etc/gitlab/gitlab.rb文件,如果有如下参数直接修改,如果没有就新增

nginx['listen_port'] = 8099
1
第二步:修改默认的gitlab nginx的web服务80端 /var/opt/gitlab/nginx/conf/gitlab-http.conf

server { ## HTTPS server
  listen *:8088;

第三步:初始化并重启组件:

gitlab-ctl reconfigure
gitlab-ctl restart
1
2
第四步:浏览器访问http://ip:8088

3、重载配置以及启动gitlab

重载配置:gitlab-ctl reconfigure  修改了 gitlab 服务配置文
件后,都需要执行一下这个命令。让各个服务的配置文件,重新加载一下配置文件


gitlab启动:gitlabgitlab-ctl start


开机自启动: vim /etc/rc.d/rc.local

/opt/gitlab/bin/gitlab-ctl start  (启动命令)


chmod +x /etc/rc.d/rc.local

systemctl start gitlab-runsvdir

systemctl enable gitlab-runsvdir

4、启动gitlab服务报错

fail: alertmanager: runsv not running
fail: gitaly: runsv not running
fail: gitlab-monitor: runsv not running
fail: gitlab-workhorse: runsv not running
fail: logrotate: runsv not running
fail: node-exporter: runsv not running
fail: postgres-exporter: runsv not running
fail: postgresql: runsv not running
fail: prometheus: runsv not running
fail: redis: runsv not running
fail: redis-exporter: runsv not running
fail: sidekiq: runsv not running
fail: unicorn: runsv not running

执行 systemctl start gitlab-runsvdir 之后解决问题

运行 systemctl start gitlab-runsvdir 命令的目的是启动 GitLab 的运行服务目录 (runsvdir)。GitLab 使用 runit 来管理其各种组件和服务,这些服务在后台运行,包括 Unicorn、Sidekiq、Gitaly、Prometheus 等。gitlab-runsvdir 是一个用于管理这些服务的守护进程。

具体来说,gitlab-runsvdir 是 GitLab 的启动脚本之一,负责启动所有其他 GitLab 组件的运行服务。当您运行 systemctl start gitlab-runsvdir 时,它会启动这个服务,进而触发 GitLab 各个组件的启动。

要理解这个命令的作用,可以将其分为以下步骤:

  1. systemctl start gitlab-runsvdir 启动了 GitLab 的运行服务目录守护进程 (gitlab-runsvdir)。
  2. gitlab-runsvdir 会查找并启动位于 GitLab 安装目录中的 runit 服务。这些服务通常位于 /opt/gitlab/service//opt/gitlab/embedded/service/ 等目录下。
  3. 每个服务目录中都包含有关如何启动和管理该服务的信息。gitlab-runsvdir 会按照这些信息来启动和管理各个 GitLab 组件。

总之,systemctl start gitlab-runsvdir 是启动 GitLab 各个组件的一种方式,通过启动运行服务目录守护进程来管理 GitLab 中的后台服务,确保它们可以正常运行。这有助于 GitLab 在启动时维护其多个组件的状态和运行

5、访问gitlab 报错502

gitlab 安装指南 gitlab安装目录_linux

使用gitlab-ctl tail 动态的查看日志发现有端口被占用

/var/log/gitlab/unicorn/unicorn_stderr.log <== E, [2023-09-07T10:00:07.488667 #11279] ERROR -- : adding listener failed addr=127.0.0.1:8080 (in use) E, [2023-09-07T10:00:07.488697 #11279] ERROR -- : retrying in 0.5 seconds (4 tries left) E, [2023-09-07T10:00:07.989613 #11279] ERROR -- : adding listener failed addr=127.0.0.1:8080 (in use) E, [2023-09-07T10:00:07.989770 #11279] ERROR -- : retrying in 0.5 seconds (3 tries left) E, [2023-09-07T10:00:08.490289 #11279] ERROR -- : adding listener failed addr=127.0.0.1:8080 (in use) E, [2023-09-07T10:00:08.490437 #11279] ERROR -- : retrying in 0.5 seconds (2 tries left) E, [2023-09-07T10:00:08.992016 #11279] ERROR -- : adding listener failed addr=127.0.0.1:8080 (in use) E, [2023-09-07T10:00:08.992169 #11279] ERROR -- : retrying in 0.5 seconds (1 tries left)

Unicorn尝试将监听器绑定到127.0.0.1的8080端口,但是该端口已经被占用了。

检查端口占用情况:使用命令如 netstatlsof 来查找哪个进程占用了8080端口,并尝试终止该进程或将GitLab的Unicorn配置更改为使用其他可用端口

解决方法:

1、端口被占用默认是80 ,如果运行的有httpd与nginx可能会发生冲突,修改端口即可

2、另外一个原因是gitlab占用内存太多,导致服务器崩溃

内存问题 解决办法,启用swap分区,步骤如下:

cat /proc/swaps 查看swap分区是否启动(无)

创建 :

dd if=/dev/zero of=/data/swap bs=1M count=2048

通过mkswap命令将上面新建出的文件做成swap分区

mkswap /root/swap

查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60

查看: cat /proc/sys/vm/swappiness 设置: sysctl -w vm.swappiness=60 若想永久修改,则编辑/etc/sysctl.conf文件,改文件中有vm.swappiness变量配置,默认为0 启用分区

启动swap

swapon /root/swap

查看swap状态

swapon -s

6、卸载gitlab 

  1. 执行gitlab-ctl stop 停止服务;
  2. 执行rpm -e gitlab-ce 卸载gitlab;
  3. 执行ps aux | grep gitlab 查看当前进程中是否还有gitlab进程;如果有执行 kill -9 ****.
  4. 执行find / -name gitlab | xargs rm -rf 删除所有相关文件;

二、Git 用户信息

1、配置个人的用户名称和电子邮件地址:

git config --global user.email "hwb@litianyun.com"
git config --global user.name "Your Name"
 

2、查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

三、Gitlab基础操作

1、克隆项目(project)

git clone git@XXX.git      # 这里是项目的地址(可从项目主页复制),将远程服务器的内容完全复制过来 

2、添加文件都暂存区

git add             ## 添加多个文件

git add alexanderzobnin-zabbix-app-4.3.1.zip         # 将新的文件添加到git的暂存区


查看暂存区的文件(新添加的文件)

git status

# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#    新文件:    alexanderzobnin-zabbix-app-4.3.1.zip
#

查看暂存区的版本

git log --oneline  查看暂存区版本 

3、提交文件到版本库

git commit  -m "hello,world"  # 将暂存区的文件提交到某一个版本保存下来,并加上注释  

git reset --soft  --HEAD^          ####撤销commit;--HEAD^是上一个版本,也可以写成--HEAD~1;如果进行了两次,想都撤回可以写成HEAD~2

4、撤销暂存区文件

git reset -- HARD f.txt    ##撤销暂存区里面的文件

git reset --HARD   ##后面什么都不加会撤销所有的文件。

 5、版本回退

# 用 git log 命令查看:
# 每一个提交的版本都唯一对应一个 commit 版本号,
# 使用 git reset 命令退到上一个版本


git reset --hard origin/master


[root@qfedu.com ~]# git reset --hard HEAD^

git reflog                    # 查看命令历史,以便确定要回到哪个版本

git reset --hard commit_id    # 比如git reset --hard 254240(不用全部输入,输入前几位即可)

删除远程仓库文件

git rm -r --cached target git commit -m "delete target/" git push origin master

git rm 使用说明

# 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file]

6、分支管理

1、创建分支

git checkout -b docker   ##创建分支、然后切换到dockek分支 ----分支名字随便取,看得懂就行。
git branch              #命令会列出所有分支,当前分支前面会标一个*号


2、分支切换

git checkout  master  ##切换分支

 git branch -d dev  ##删除分支

git log --oneline --graph --all   查看版本路线图

3、合并分支

git branch --merged            查看已合并的分支

git branch --no-merged      查看未合并的分支

git merge  docker        #把docker分支的工作成果合并到master分支上

7、删除远程分支

git push origin --delete  远端分支名称  ###会删除远端分支名称以及相同名称分支。

远程仓库迁移

git remote -v  ###显示当前仓库地址

git  remote set-url  origin 新的仓库地址(beijingshi.git)

git remote -v       ###此时可以看到远程仓库地址发生变化

git push --all  ###将当前所有分支push到远程仓库中。