从0开始的GITLAB服务器搭建与操作
此处所使用搭建的服务器为Ubuntu20.04,代码编写的客户端也为Ubuntu
一、准备程序XShell与Xftp配置
Xshell和Xftp的搭建主要是为了远程使用shell去操作服务器,如果已经配置过xshell或者使用向日葵,ToDesk等软件进行远程控制的可以直接进行下一步。
1、windows上下载xshell与xftp
xshell与xftp只能在windows上下载,这里我选择在个人电脑上进行xshell下载。
下载地址:https://www.xshell.com/zh/free-for-home-school/
,这里可以下载免费版的Xshell与Xftp,之后正常安装即可。
2、配置XShell与Xftp
1、在你的xshell与xftp正常启动后,会有窗口跳出来,选择左上角的新建然后新建一个会话。
2、在会话中设置不同的别名(名称),用于进行对不同会话主机的区分,在主机这部分中输入主机的IP或者URL,比如192.168.1.1,端口号可以自己设置也可以默认。
3、点击用户身份验证,输入服务器的用户名和密码,然后链接即可,后续需要保存密钥,点击接受并保存。
4、Xftp和Xshell的配置方法一样,在Xshell中有Xftp的图标可以直接调用Xftp传输文件。
5、在链接到服务器可以使用xshell操作之后进行GitLab的配置
二、GitLab服务器搭建
GitLab是一款功能强大的自托管Git仓库管理工具,支持代码托管、持续集成和部署等功能。而且虽然是作为企业管理服务器是需要付费的,但是如果我们自己使用可以使用个人版,可以说非常好用。
配置git连接(服务器和客户端都需要配置)
gitlab与git密切相关,所以需要先配置好git然后在进行gitlab配置
1、更新你的ubuntu系统然后安装git:
sudo apt update
sudo apt upgrade
sudo apt install git
2、创建git用户:并且按照提示设置用户密码和信息
sudo adduser git
3、切换到git用户,并创建一个用于存储Git仓库的目录:
su - git
mkdir repos
cd repos
BUG解决:git 不在 sudoers 文件中。此事将被报告。
要将Git用户添加到sudoers文件中,以便能够使用sudo
命令,请按照以下步骤操作:
su root
usermod -G sudo git
cat /etc/group | grep sudo
即可看见git的名字,然后也可以继续验证:
su - git
sudo -l
4、创建裸仓库:(bare repository)是没有工作区的仓库,适用于中央存储
git init --bare your_project.git
5、设置SSH访问权限
为了让其他用户能够通过SSH访问Git服务器,需要设置SSH访问权限。首先在Git用户的主目录中创建.ssh
目录:
mkdir ~/.ssh
chmod 700 ~/.ssh
#添加密钥
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
将其他用户的SSH公钥添加到authorized_keys
文件中。公钥的格式通常是:
ssh-rsa AAAAB3... user@example.com
6、获取SSH密钥
让其他用户在他们的机器上生成一个SSH密钥对。如果他们已经有一个密钥对,可以跳过这一步。生成密钥对的命令如下:
#生成密钥
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
#查看密钥
cat ~/.ssh/id_rsa.pub
让用户发送完整的密钥给你,然后将密钥添加到文件当中,将公钥内容粘贴到文件末尾。每个公钥应占一行。然后让用户连接到Git服务器确保配置正确:
ssh git@your_server_ip
然后就可以直接进行连接,如果连接后的窗口有git字样,则说明连接成功。
7、其他说明:
1、查看ip:ip a
2、成功连接服务器后,会出现以下提示“
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-47-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Last login: Wed Oct 6 12:34:56 2021 from 192.168.1.100
git@server:~$
GitLab安装
1、依赖项安装:
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl openssh-server ca-certificates tzdata perl
如果您需要GitLab发送邮件通知,可以安装Postfix:sudo apt install -y postfix
2、安装GitLab
添加GitLab的官方仓库并下载安装脚本:
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
安装GitLab CE(Community Edition):这个版本仅用于个人项目托管或小团队项目管理,是免费的。
sudo gitlab-ctl reconfigure
安装完成后,配置并启动GitLab:
sudo gitlab-ctl reconfigure
通过安装包安装gitLab
1、远程下载GitLab包:
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_16.10.6-ce.0_amd64.deb/download.deb
下载不了的可以访问
https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/buster/gitlab-ce_16.10.6-ce.0_amd64.deb
在右上角的Download中下载,或者去上级网站中选择需要的版本号。
然后安装包dpkg -i gitlab-ce_16.10.6-ce.0_amd64.deb
2、配置GitLab
vim /etc/gitlab/gitlab.rb
修改GitLabURL:这里的URL是服务器的URL,然后端口可以自己设置,从这个端口登陆可以定向到配置好的GitLab。
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'http://192.168.1.1:8000'
这里的external_url为自己服务器的URL和自己设置的端口。
重新配置GitLab:sudo gitlab-ctl reconfigure
配置防火墙允许通过端口访问:
sudo ufw allow 8000/tcp
sudo ufw reload
如果在重新配置GitLab地方出错,必须关闭所有git进程和shell,关闭你的Xshell、Xftp,查询并杀死进程,然后可以在向日葵上通过远程控制重新配置GitLab:
查询进程:ps -u git
,杀死进程:sudo kill <process_id>
配置GitLab
进入GitLab,在浏览器输入你的URL,即可看见GitLab的登陆界面,一般的管理员权限是服务器的密码和root进行登陆,登陆不了可以尝试修改账户和密码:
在安装GitLab时,初始管理员密码会被保存到/etc/gitlab/initial_root_password
文件中。这个文件默认会在首次重配置后的24小时内被删除。如果该文件仍然存在,可以查看它来获取初始密码。
sudo cat /etc/gitlab/initial_root_password
也可以重置:
sudo gitlab-rails runner "user = User.find_by_username('root'); user.password = 'new_password'; user.password_confirmation = 'new_password'; user.save!"
这样就没问题了,如果有问题可以重新配置一下sudo gitlab-ctl reconfigure
GitLab权限配置
1、管理员审批
1、登录到GitLab
使用管理员账户登录到您的GitLab实例。访问您配置的GitLab URL(例如 http://192.168.1.1:8000
),然后输入管理员用户名和密码进行登录。
2、进入管理员区域
登录成功后,点击页面右上角的头像,然后选择“Administrator”。
然后点击右上角Edit profile旁边的人物小图标进入管理区域(Admin Area)
3、审核新用户
在“Admin Area”中,您可以看到需要审核的新用户注册请求。具体步骤如下:
点击“Users”
在“Admin Area”仪表盘中,找到并点击“Users”选项。这将显示所有用户列表。
4、查看待审核的用户
在用户列表中,您可以看到状态为“Blocked”或“Pending Approval”的用户。这些用户是新注册的,等待管理员审核。
5、批准或拒绝用户
点击待审核用户旁边的编辑按钮,在用户详情页面,您可以看到“Actions”部分,选择“Approve”以批准用户注册,或选择“Reject”以拒绝用户注册。
6、配置用户权限
如果需要,您还可以进一步配置用户的权限,例如将他们添加到特定的组或项目,并为他们设置相应的访问权限。
1、添加用户到组:
在“Admin Area”或项目页面中,找到并点击“Groups”。
选择您希望用户加入的组。
在组页面,点击“Group Members”。
输入用户的用户名或电子邮件地址,选择合适的访问级别(Owner、Maintainer、Developer、Reporter、Guest),然后点击“Add to group”。
2、添加用户到项目:
在“Admin Area”或项目页面中,找到并点击“Projects”。
选择您希望用户参与的项目。
在项目页面,点击“Project Members”。
输入用户的用户名或电子邮件地址,选择合适的访问级别,然后点击“Add to project”。
2、项目创建
登录到GitLab,在首页,点击“New Project”按钮,选择“Create blank project”,输入项目名称、描述(可选)和可见性级别(Public、Internal或Private),点击“Create project”。
三、GitLab在vscode上的配置(客户端配置)
先确保在客户端的电脑上配置了git,配置方法在上文
安装配置插件:GitLab Workflow
1、安装GitLab Workflow插件
打开VS Code。
进入扩展视图(Ctrl+Shift+X)。
搜索并安装GitLab Workflow。
2、配置GitLab Workflow插件
1、基础信息配置
点击插件图标,一般为列表最后一个小狐狸图标,第一次点击进入,点击Add Count会出现输入URL和访问令牌(Token)的提示。在输入框里第一次会让你输入URL,第二次会让你输入Token。
将服务器的URL和生成的令牌写入即可。
生成GitLab访问令牌
登录到您的GitLab账户。
点击左上角的头像,选择“edit profile”。
在左侧菜单中选择“Access Tokens”。
创建一个新的访问令牌,确保勾选“api”和“read_user”权限。
复制生成的令牌。
在这里直接复制,这个界面关了就复制不了这次设置的令牌了。
2、本地git仓库初始化
在本地的项目文件下初始化git仓库:git init
这里可以打开vscode里面的终端,自动进入项目文件下,后续都可以在VsCode里面操作。
添加文件并且首次提交:
git add .
git commit -m "Initial commit"
在存在提交的情况下,可以直接进行分支的创建:
git checkout -b your_master_name
#这里起一个团队可以分辨的名字
然后将你的分支推送到远程仓库:
git push -u origin your_master_name
团队协作开发功能操作
开发者分支创建:
1、切换到主分支并拉取最新代码:
git checkout main
git pull origin main
2、创建并切换到新功能分支:
git checkout -b feature/feature-name
3、开发完成后提交更改:
git add .
git commit -m "Implement feature-name"
4、推送功能到远程仓库
git push origin feature/feature-name
5、其他分支功能
#查看当前分支
git branch
#切换到目标分支(如果不在目标分支上)
git checkout feature-name
#如果分支不存在,请先创建并切换到该分支:
git checkout -b feature-name
#重命名分支
git branch -M new_name
#强制推送
git push -uf origin feature-name
PR代码合并:
Pull Request(拉取请求,简称PR)是一种用于在分布式版本控制系统(如Git)中进行代码审查和协作开发的工具。Pull Request 允许开发人员在将代码更改合并到主分支之前进行讨论、审查和测试,以确保代码质量和稳定性。
在GitLab中进行PR操作:
1、进入项目页面:在 GitLab 中打开您的项目页面。
2、创建 Merge Request
点击 Merge Requests
选项卡。
点击 New merge request
按钮。
选择 source branch
为 feature/new-feature
,target branch
为 main
。
填写标题和描述信息,详细描述更改的内容和目的。
点击 Create merge request
按钮创建 Pull Request。
3、代码审查与合并
确认合并:在 Pull Request 页面中,点击 Merge
按钮将更改合并到目标分支。
删除功能分支(可选):合并后,可以选择删除已合并的功能分支以保持仓库整洁。
删除远程分支:git push origin --delete branch_name
删除本地分支:git branch -d branch_name
如果该分支尚未被合并,可以使用 -D 选项强制删除:git branch -D branch_name
目前先写到这里,有什么问题可以留言,需要什么功能,后续也会更新教程。