Gitlab安装

  • 配置文件/etc/gitlab/gitlab.rb
  • 日志文件/var/log/gitlab/
  • 数据文件/var/opt/gitlab/
  • 静态文件和网页内容/opt/gitlab/embedded/service/gitlab-rails/public/

查看当前状态

git status

提交本地更改

git commit -m "更新 README 和 WsdemoApplication"

拉取远程分支并进行 rebase 不会发生冲突

git pull --rebase origin main

推送到远程仓库

git push origin main

gitlab-ctl stop 先停止

yum remove gitlab-ce 删除gitlab

/etc/gitlab 删 GitLab 的配置文件

/opt/gitlab 删 录包含 GitLab 的应用程序文件和依赖项

/var/opt/gitlab 删 GitLab 的数据文件和日志

重新安装 rpm -i gitlab-ce-16.11.2-ce.0.el7.x86_64.rpm 测试该版本稳定

gitlab-ctl reconfigure

如果原先安装过

删除gitlab yum remove gitlab-ce 然后可以安装新的

rpm -qa | grep gitlab 检查安装的版本

rpm -e gitlab-ce-15.9.1-ce.0.el7.x86_64 卸载旧的版本 这样说明没了 不然还有

下载安装包 比较大 有1G多 清华大学开源镜像库

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

新版本

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

或者

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

安装必要的依赖

yum install -y curl policycoreutils-python openssh-server

安装 GitLab

rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm

新版本

rpm -i gitlab-ce-16.11.2-ce.0.el7.x86_64.rpm

或者

rpm -i gitlab-ce-17.0.0-ce.0.el7.x86_64.rpm

  • 配置文件路径/etc/gitlab
  • 日志文件路径/var/log/gitlab
  • 数据文件路径/var/opt/gitlab

修改配置文件

vim /etc/gitlab/gitlab.rb

里面这些注释掉的就是它默认配置的

你可以将注释解开 或者额外写

这些配置很多就一个目的 节省资源 gitlab太费了

复制代码
#禁用内部nginx
nginx['enable'] = false
#这个配置影响电子邮件通知、项目页面链接等 就是说如何可以访问到这个gitlab实例
#external_url 'http://原先的ip方式:9999'
external_url 'https://域名方式'
#设置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#监听方式
gitlab_workhorse['listen_network'] = "tcp"
#实例启动的端口
gitlab_workhorse['listen_addr'] = "127.0.0.1:8033"  

git_data_dirs({
  "default" => {
    "path" => "/usr/local/gitlab/data"  # 这里是默认数据储存路径,路径全部可以自定义
  },
  "alternative" => {
    "path" => "/usr/local/gitlab/data/backup"  # 这里是备用数据储存路径,为避免磁盘损坏,丢失编码
  }
})
# Puma配置
puma['worker_processes'] = 2  # 工作节点数

# Sidekiq配置   该配置17.0.0版本被移除
sidekiq['max_concurrency'] = 8  # 最大并发数

# PostgreSQL配置
postgresql['shared_buffers'] = "128MB"  # 缓存大小
postgresql['max_worker_processes'] = 4  # 进程数量

redis['enable'] = true
redis['bind'] = '127.0.0.1'  # 绑定到本地IP
redis['port'] = 6378  # 设置内置reids的端口  

# 禁用Prometheus监控
prometheus_monitoring['enable'] = false

# 禁用Grafana
grafana['enable'] = false

# 禁用Mattermost
mattermost['enable'] = false

# 禁用GitLab Pages
# 确保注释或删除以下行
# pages_external_url 'http://pages.example.com'   gitlb可以配置静态页面生成器
gitlab_pages['enable'] = false



# 配置Gmail作为SMTP服务器(用于发送邮件)
gitlab_rails['smtp_enable'] = true
#gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxxxxx@qq.com"
gitlab_rails['smtp_password'] = "xxxxxxxxxx"  # 使用生成的应用专用密码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'xxxxxxxx@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'Hellojava.org'

# 配置Gmail作为IMAP服务器(用于接收邮件)
gitlab_rails['incoming_email_enabled'] = true
gitlab_rails['incoming_email_address'] = "qq号+%{key}@qq.com"  # 使用Gmail的子地址功能
gitlab_rails['incoming_email_email'] = "xxxxxxxx@qq.com"
gitlab_rails['incoming_email_password'] = "xxxxxx"  # 使用生成的应用专用密码
gitlab_rails['incoming_email_host'] = "imap.qq.com"
gitlab_rails['incoming_email_port'] = 993
gitlab_rails['incoming_email_ssl'] = true
gitlab_rails['incoming_email_start_tls'] = false
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
gitlab_rails['incoming_email_idle_timeout'] = 60
gitlab_rails['incoming_email_expunge_deleted'] = true

sudo gitlab-rake gitlab:incoming_email:check 验证邮箱配置

保存之后初始化 这个需要点时间 完成之后 gitlab已经启动了

gitlab-ctl reconfigure 第一次是配置完自动启动

第二次配置的话 修改完配置文件 然后 gitlab-ctl reconfigure 就可以了

libarchive 是一个多功能的库,用于读取和写入压缩归档文件。它支持多种归档格式和压缩方法,如 tar、cpio、zip、7-zip、xar、ISO 和更多。libarchive 被广泛用于备份、恢复、文件传输等任务。

安装下

yum install libarchive

重新配置

重启下

gitlab-ctl restart

查看密码

cat /etc/gitlab/initial_root_password

gitlab-ctl restart #重启 GitLab 的所有服务。它先停止所有服务,然后重新启动它们。

其他命令

gitlab-ctl stop # 关闭所有服务

gitlab-ctl restart # 重启所有服务

gitlab-ctl status # 查看所有服务状态

gitlab-ctl help # 帮助

gitlab-ctl reconfigure # 修改配置文件之后,需要重新加载下

gitlab-ctl show-config # 查看所有服务配置文件信息

gitlab-ctl tail # 查看日志

外部nginx配置

复制代码
    #原先ip方式	
	#server {
    # listen       9999;  
    # client_max_body_size 0; 
    # server_name  服务器ip;
    # server_tokens off;
	 
	 #access_log  /var/log/nginx/gitlab_access.log;
	 #error_log   /var/log/nginx/gitlab_error.log;
    # location / {
    #      root  html;
    #      index index.html index.htm;
    #      proxy_pass http://127.0.0.1:8033; #这里与前面设置过的端口一致
    #      proxy_read_timeout      3600;
    #      proxy_connect_timeout   300;
    #      proxy_redirect          off;
    #     proxy_http_version 1.1;
    #      proxy_set_header Host $http_host;
    #      proxy_set_header X-Real-IP $remote_addr;
    #      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #      proxy_set_header X-Forwarded-Proto http;
    # }
	 

	#	 location ~ ^/(assets)/ {
	#		root /opt/gitlab/embedded/service/gitlab-rails/public;
	#		gzip_static on; # Serve pre-gzipped version
	#		expires max;
	#		add_header Cache-Control public;
	#	 }
	 

	#}	
	
	
	server {
		listen 80;
		server_name 域名;

		# 重定向所有 HTTP 请求到 HTTPS
		return 301 https://$host$request_uri;
	}

	server {
		listen 443 ssl;
		server_name 域名;
		
		ssl_certificate 域名公钥地址;
		ssl_certificate_key 域名私钥地址m;
		
		access_log  /var/log/nginx/gitlab_access.log;#注意创建文件
		error_log   /var/log/nginx/gitlab_error.log;
		location / {
			proxy_pass http://127.0.0.1:8033;
			proxy_http_version 1.1;
			proxy_set_header X-Forwarded-Proto https;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $host;
		}

		location /assets/ {
			root /opt/gitlab/embedded/service/gitlab-rails/public;
			gzip_static on; # Serve pre-gzipped version
			expires max;
			add_header Cache-Control public;
		}
	}


	
	#用于域名 ssl验证
	
	#server {
	#	listen 80;
	#	server_name 域名;

	#	location / {
	#		root 访问地址; # 您的 webroot 路径
	#	}

	#	# 其他 location / 配置,用于正常的网站内容
	#}

修改密码

往下拉 最下面

保存之后去修改密码

设置完成之后 会自动跳到重新登录

然后退出 重进 就看不到 那个提示了

设置SSH密钥

在本地配置 Git 的用户名和邮箱时,用户名和邮箱地址可以随意设置,并不需要与 GitLab 上的一致。不过,建议使用与 GitLab 上一致的用户名和邮箱地址,这样可以更方便地进行管理和识别

1. 配置用户名和邮箱

git config --global user.name "Your Name"

git config --global user.email "your@example.com"

2. 生成 SSH 密钥

ssh-keygen -t rsa -C "your@example.com"

3. 查看生成的公钥内容

cat ~/.ssh/id_rsa.pub

4. 将公钥添加到 GitLab 的 SSH Keys 设置中

5. 设置 Git 的 push 默认模式

git config --global push.default simple

复制文件里的内容

如果设置了到期时间 则到期失效 不设置 则永久

添加密钥

关于群组

新建群组

即使自己搭建的 选择公开也会被没有登录的人员获取代码

比如你创建了一个test群组 选择公开 test群组里有个demo项目

那么别人就可以通过 http或者https://域名/群组/项目名访问 无须登录

新建项目

提交项目

进入项目内

将当前工作目录切换到你的项目目录。请将 /xx/project 替换为你的实际项目路径。

cd /xx/project

初始化

初始化一个新的 Git 仓库。如果该目录已经是一个 Git 仓库,这条命令不会有任何效果。

#项目下会创建.git文件

git init

若init后是master分支,修改本地分支名称

如果初始化后默认分支名称是 master,重命名为 main。

这种做法是因为现在许多项目使用 main 作为默认分支名称,而不是 master。

git branch -m master main

添加代码到缓存区

将当前目录下的所有文件添加到 Git 的暂存区,准备进行提交。

git add . 表示添加当前目录及其子目录中的所有文件。

git add .

和远程仓库建立连接

将本地仓库与远程仓库连接起来,origin 是远程仓库的默认名称。

替换为你的实际远程仓库 URL。 SSH也是可以的

git remote add origin http://121.40.45.228:8859/gitlab-instance-c82aafb6/k8s-cicd-demo.git

确认本地分支名称为 main。如果已经是 main,这条命令没有影响。

git branch -M main

提交更改到本地仓库,其中 'xx' 是提交信息,

通常应替换为描述你所做更改的实际信息。

git commit -m 'xx'

推送代码

从远程仓库 origin 的 main 分支拉取最新的代码并进行变基操作。

这有助于保持本地提交记录的整洁。

git pull --rebase origin main

将本地的 main 分支强制推送到远程仓库的 main 分支。

-u 选项会设置本地分支与远程分支的跟踪关系,

-f 选项表示强制推送,可能会覆盖远程分支上的更改,使用时需谨慎。

git push -uf origin main

git pull --rebase origin main 拉取远程main分支的代码 第一次要求输入账密

最后推送

git push -uf origin main

有些文件不想上传

不过git上的没排除....... 可以点进去手动删除

拉取项目

git clone git地址

添加账户

点击连接

管理员可以编辑

新创建的用户登录是这样的

给新用户拉项目 用root

点击一个项目

相关推荐
model200517 分钟前
Alibaba linux 3安装LAMP(6)
linux·运维·服务器
MUTA️20 分钟前
使用ImageZMQ将本地摄像头画面传输到服务器
运维·服务器
wjykp28 分钟前
1.vmware虚拟机安装和配置os
linux·运维·服务器
Henry Zhu12344 分钟前
VPP中的DPDK插件源码详解第一篇:DPDK插件的作用和意义以及整体架构
运维·服务器·网络·计算机网络·云原生
Better Bench1 小时前
Ubuntu aarch64 (arm64)架构开发板的Linux系统安装拼音输入法
linux·ubuntu·arm64·aarch64·拼音输入法
测试人社区-千羽1 小时前
智能测试的终极形态:从自动化到自主化的范式变革
运维·人工智能·python·opencv·测试工具·自动化·开源软件
秋刀鱼 ..1 小时前
2026年机器人感知与智能控制国际学术会议(RPIC 2026)
运维·人工智能·科技·金融·机器人·自动化
roman_日积跬步-终至千里1 小时前
【源码分析】StarRocks 跨集群数据迁移工具 - 基于快照进行的快速迁移
运维
koddnty1 小时前
在c++中使用HOOK修改sleep函数
linux·c++
Jovin Giogic1 小时前
简明教程:记录 Ubuntu系统命令行安装TexLive,配置vscode
linux·vscode·ubuntu·latex·texlive