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

点击一个项目

相关推荐
烦躁的大鼻嘎4 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师4 分钟前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器
ac.char11 分钟前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾11 分钟前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程30 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.37 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
soulteary1 小时前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika