目录
简介
GitLab是一个开源的、基于Web的Git存储库管理工具,它提供了一整套用于代码版本控制、持续集成和软件开发协作的功能。GitLab提供了一个方便的界面来管理和访问你的代码存储库。它还提供了问题跟踪、代码审核、发布管理等功能,可以帮助团队更好地协作开发软件项目。
安装教程
安装gitlab
访问Gitlab官网:gitlab/gitlab-ce - Packages · packages.gitlab.com,找到最新版本的gitlab-ce
安装包,注意版本是ubuntu/focal
。
ps:ubuntu/focal 适用于 ubuntu 20系列,ubuntu/bionic 适用于 ubuntu 18 系列
通过wget
方式在线安装gitlab,复制wget
下载命令。
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_16.5.8-ce.0_amd64.deb/download.deb
执行结果如图:
使用dpkg命令安装程序:
sudo dpkg -i gitlab-ce_16.5.8-ce.0_amd64.deb
配置Gitlab
运行sudo vim /etc/gitlab/gitlab.rb
进入gitlab的配置文件修改界面,输入i进入编辑模式,然后找到external_url
字段(在第32行),改成自己需要设置的IP和端口号,IP设置为本机的ipv4地址。
修改时区
查找该行,然后将注释去掉,UTC改成Asia/Shanghai
修改完毕以后按esc键
退出编辑模式,然后输入:wq
保存即可。接下来通过下列命令启动服务。
# 停止gitlab服务 sudo gitlab-ctl stop # 启动gitlab服务 sudo gitlab-ctl reconfigure # 启动所有gitlab组件 sudo gitlab-ctl start # 启用开机自启动 sudo systemctl enable gitlab-runsvdir.service
下面是一些常用命令
#gitlab配置文件修改 sudo vim /etc/gitlab/gitlab.rb #停止gitlab sudo gitlab-ctl stop #重载gitlab配置文件 sudo gitlab-ctl reconfigure #重启所有gitlab组件 sudo gitlab-ctl restart #启动所有gitlab组件 sudo gitlab-ctl start #查看运行状态 sudo gitlab-ctl status #开机自启 sudo systemctl enable gitlab-runsvdir.service
查看root初始密码(密码24小时有效):
cat /etc/gitlab/initial_root_password
登录gitlab
接下来就可以通过http://192.168.188.138地址
来登录gitlab了。登录的地址是你之前设置external_url
字段的值。
不习惯新的界面模式,可以选择此项关闭:
按下面的步骤将gitlab语言设置为中文:
注意点击Preferences
。
重新设置root用户密码:
禁用注册功能
将通用设置中的注册限制,启用注册功能的勾给去掉(记得向下滑找到点击保存修改!)
ps:为了方便管理。。。。还是禁掉为好。
gitlab内存优化
为减少内存占用可进行如下配置:
sudo vim /etc/gitlab/gitlab.rb
# 减少数据库缓存 postgresql['shared_buffers'] = "64MB" # 减少数据库并发数 postgresql['max_worker_processes'] = 4 # 禁用puma cluster模式,可以减少资源占用 puma['worker_processes'] = 0 # 减少sidekiq并发数 # sidekiq['concurrency'] = 2 sidekiq['max_concurrency'] = 2 # 禁用监控 prometheus_monitoring['enable'] = false # 减少gitlab_rails组件的内存消耗 gitlab_rails['env'] = { 'MALLOC_CONF' => 'dirty_decay_ms:500,muzzy_decay_ms:500' }
重新加载gitlab服务:
sudo gitlab-ctl reconfigure sudo gitlab-ctl restart
创建用户
管理员中点击用户然后点击新用户
设置好名称用户名电子邮箱、访问级别和其他选项后点击创建即可
ps:邮箱我随意设置的(我也没用到邮箱);如果内网要使用邮箱的话,请搭建邮箱服务器
然后再次点击用户,进行修改密码的操作
保存更改,然后我们使用yuanshen用户进行登录,新用户登录仍需要重设置密码(可以与旧密码相同)
创建群组
点击群组,然后新建群组
设置群组名称,选择可见性,其它设置可选,然后点击新建即可完成
添加成员进群组
点击刚才创建的群组
点击邀请同事,然后输入用户名即可
管理群组成员权限
在管理员中选择群组,找到管理权限
选择权限
权限说明
Guest(访客):
访客拥有最低的权限级别,通常是公开项目的非注册用户或者已注册用户没有被授权访问的私有项目的用户。
访客只能查看项目和问题,但不能执行其他操作,例如修改代码或创建问题等。
Reporter(报告者):报告者拥有读取和评论项目的权限,但不能修改代码或项目设置。
报告者可以查看项目的代码、问题、合并请求等,并且可以添加注释和标签,但不能对这些内容进行更改。
Developer(开发者):开发者是项目的主要贡献者之一,具有修改代码、创建分支、提交合并请求等权限。
开发者可以修改项目的代码、创建新分支、提交合并请求并将更改合并到主分支中。
Maintainer(维护者):维护者是项目的管理者,拥有对项目的完全访问权限,可以修改项目设置、添加新成员、合并合并请求等。
维护者可以对项目进行所有操作,包括创建、修改、删除代码、分支、合并请求、标签等。
Owner(所有者):所有者是拥有项目的最高权限用户,通常是创建项目的用户。
所有者具有维护者的所有权限,同时还可以管理项目的访问级别(公开、私有)、删除项目等。
创建项目
创建好群组后然后点击新建空白项目,设置好项目名称、可见性和其它设置点击新建即可
第一步:选择url路径。
第二步:输入项目名称。项目命名规则:aaa_bbb_ccc_ddd_eee。(一个小建议,当然我上面是没有按照这个规则的。)
aaa:总项目拼音缩写(例如:星穹铁道即xqtd)
bbb:总项目内的子项目名
ccc:开发者拼音缩写
ddd:创建日期
eee:项目简介缩写
第三步:选择内部。最后点击创建项目。
分支管理
创建好项目后,当前会有一个main主分支,我们可以选择新建分支,然后输入分支名称即可
现在我们可爱的三月七小姐就登上了列车
我们点击仓库,分支,然后点击查看分支规则
找到受保护分支,这里我们可以选择添加保护的分支;可以设置角色权限来对分支保护
设置完成即可(我这里让sanyueqi分支可以让开发者进行上传与合并,main分支则不让开发者进行合并)
ps:对于项目的管理,可以设置主分支只让主要管理者才可以合并,其他开发人员创建自己的分支进行上传代码和合并代码,要与主分支合并可以提出合并请求经过审核才能合并
使用git bash工具
下载git bash
选择windows,下载好后都默认直接安装即可
上传代码
上传本地已有的项目
请提前删除本地项目内的.idea和.git文件!!!进入本地项目中,鼠标右键点击“git bush here”。(已经安装了git),然后将git命令按顺序输入。
选择自己要上传的代码目录下,右键鼠标选择open Git Bash here(安装好git后自动会有)
在刚才打开的git bash终端设置用户名、邮箱
#设置用户名、邮箱为gitlab上设置的邮箱 git config --global user.name "yourname@yourgilab.com" git config --global user.email "youremail@yourgitlab.com"
然后输入
#在gitlab项目内复制的http链接 git clone http://192.168.0.130/java/xingqiongtiedao.git
将目录内代码拷贝到项目目录(将红框外的文件全都拷到红框的这个目录)
切换目录(cd xingqiongtiedao)
然后把目录下的所有文件上传到git
git add .
提交信息
git commit -m "你的描述"
推送项目到GitLab
git push <链接(orgin是别名)> <本地仓库>:<远程分支>
git push origin main:sanyueqi
推送现有文件夹
在当前文件夹打开git bash,然后输入以下命令:
#设置全局用户名为 “test1”,用于标识提交代码的用户。 git config --global user.name "test1" #设置全局用户邮箱为 “test1@qq.com”,用于标识提交代码的用户。 git config --global user.email "test1@qq.com" #初始化一个新的 Git 仓库,并设置默认分支名称为 main。该命令会在当前目录下创建一个 Git 仓库。 git init --initial-branch=main #将远程仓库 http://192.168.0.130/java/test.git 添加为本地仓库的远程仓库,并命名为 origin。 git remote add origin http://192.168.0.130/java/test.git #将当前目录下的所有文件添加到暂存区,准备提交到本地仓库。 git add . #将暂存区的文件提交到本地仓库,并附上提交信息 “你的描述”,用于描述本次提交的目的。 git commit -m "你的描述" #将本地的 main 分支推送到远程仓库 origin 的 danheng 分支。这个命令有一个 : 符号,表示将本地的 main 分支推送到远程仓库的 danheng 分支。 git push origin main:danheng
去网页分支中查看一下,上传成功
第二次上传
在刚才已有的克隆的目录下,新增一个txt作为测试
右键打开git bash
输入git status我们可以看到红色的未上传的部分
所需命令如下:
#查看当前工作区和暂存区的状态,显示哪些文件被修改过或处于暂存状态。 git status #初始化 git init #添加到暂存区 git add . #提交信息 git commit -m "second_commit" #将本地的 main 分支推送到远程仓库 origin 的 danheng 分支。 git push origin main:danheng
上传完成
如果需要将代码上传到别的账户,需要到控制面板-用户账户-管理凭据-Windows凭据中更改账户信息。
使用sourceTree工具创建分支
下载链接:Sourcetree | Free Git GUI for Mac and Windows
第一步:点击clone
第二步:输入刚刚复制的HTTP的url
第三步:选择克隆的文件夹位置
第四步:点击克隆
下图是克隆完成后的样式:
创建项目分支
第一步:选择主线(master)
第二步:点击分支
第三步:输入新分支名称(开发人员缩写)
第四步:创建分支
下图是成功创建分支后的样式:
提交分支
代码发生变更后提交代码
第一步:点击暂存所有
第二步:点击提交
第三步:输入本次更新的内容概述
第四步:勾选“立即推送变更”
点击提交,可以在gitlab内选择对应分支,就可以看到之前的提交操作。
gitlab服务器邮箱的配置(可选)
使用vim打开配置文件
vim /etc/gitlab/gitlab.rb
添加红框里的配置
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "xxxx@qq.com" # 需要自行修改 gitlab_rails['smtp_password'] = "123456" # 需要自行修改 gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['gitlab_email_from'] = "xxxx@qq.com" # 必须与上面的邮箱一样
保存上面的配置执行命令重新载入配置
sudo gitlab-ctl reconfigure
进入gitlab控制台
sudo gitlab-rails console
输入以下内容发送邮箱测试是否能成功发送(title是邮件的标题,body是邮箱正文内容)
Notify.test_email('xxxxx@qq.com', 'title', 'body').deliver_now
##################################################################################################################################################
今日推荐
小说:《我在精神病院学斩神》
简介:
你是否想过,在霓虹璀璨的都市之下,潜藏着来自古老神话的怪物?
你是否想过,在那高悬于世人头顶的月亮之上,伫立着守望人间的神明?
你是否想过,在人潮汹涌的现代城市之中,存在代替神明行走人间的超凡之人?
人类统治的社会中,潜伏着无数诡异;
在那些无人问津的生命禁区,居住着古老的神明。
炽天使米迦勒,冥王哈迪斯,海神波塞冬……
而属于大夏的神明,究竟去了何处?
在这属于“人”的世界,“神秘”需要被肃清!
最后,在说一句:我是胡桃的狗!