gitlab

一、gitlab 概念

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

b和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务

GitLa器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

1.1、gitlab与SVN 区别

  • GitLab:基于 Git 的分布式版本控制系统。每个开发者的工作站都有完整的代码仓库,包括所有的历史版本和分支。开发者可以在本地进行更改,离线工作。
  • SVN:集中式版本控制系统。版本库存储在中央服务器上,开发者从中央服务器检出代码,进行更改后再提交到中央服务器。每个开发者的本地副本不包含全部历史版本。

二、部署本地gitlab服务器(使用docker搭建)

虚拟机要求至少 4G 内存

1、安装 docker

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce docker-ce-cli containerd.io

建议换成华为云

mkdir /etc/docker

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}
EOF

systemctl daemon-reload

systemctl restart docker.service

systemctl enable docker.service

2、拉取镜像

docker pull twang2218/gitlab-ce-zh

比较大,有1G多推荐使用【前置资源】

docker load -i gitlab-ce-zh.tar

由于容器也需要使用 22 端口,需要将容器所在主机的 ssh 服务端口改为 2222

vim /etc/ssh/sshd_config

修改

Port 2222

systemctl restart sshd

退出当前 ssh 连接,再使用 2222 端口重新连接

ssh -p 2222 root@192.168.88.78

3、启动容器

bash 复制代码
docker run -d \
-h gitlab \                        #指定容器中的主机名
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab \                    #指定容器名
--restart always \
-v /srv/gitlab/config:/etc/gitlab \              #挂载gitlab的配置文件
-v /srv/gitlab/gitlab/logs:/var/log/gitlab \     #挂载gitlab的日志文件
-v /srv/gitlab/gitlab/data:/var/opt/gitlab \     #挂载gitlab的数据
twang2218/gitlab-ce-zh:latest
------------------------------------------------------------------------
docker run -d \
-h gitlab \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab \
--restart always \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/gitlab/data:/var/opt/gitlab \
twang2218/gitlab-ce-zh:latest

由于 gitlab 容器需要资源较多,需要等几分钟才能正常使用,等看到状态显示为 (healthy) 就代表已经启动了

docker ps -a

三、gitlab应用

浏览器访问:http://192.168.88.78

1、设置管理员 root 用户的新密码,注意有格式要求,这里设置成 root@123

2、使用管理员 root 用户登录(root/root@123),登录后点击页面上方的【扳手】图标进入"管理区域"

gitlab 中重要的概念:

群组(group):对应一个开发团队,比如开发部组、测试部组、运维部组等。

项目(project):对应软件项目,比如开发部开发的每一个软件项目。

成员(member):对应用户,用于将用户加入到组中,比如可将几个程序员加入到某一个软件项目组中,各自完成不同的功能模块的代码并上传,来共同完成整个软件项目。

3、创建名为 yc666的组

点击 【新建群组】

【群组路径】、【群组名称】、【描述】

【可见等级】设置成 公开

其他都保持默认值,点击 【创建群组】

4、创建自己的账户,如 yc,账户加入到 yc666组中

点击页面上方的【扳手】图标进入"管理区域"

点击 【新建用户】

【姓名】设置成 yc

【用户名】设置成 ycyc

【电子邮箱】设置成 yc@pp.com

这里密码暂不设置,其他都保持默认值,先点击 【创建用户】

创建好用户后再点击右上角的【编辑】,可在这里设置密码,,如 abc@1234

5、创建项目 myweb,授权 yc是项目的主程序员,使其具有上传代码的权限

点击页面上方的【扳手】图标进入"管理区域"

点击 【新建项目】

【项目路径】群组选项下拉选择 yc666

【项目名称】设置成 myweb

【项目描述】设置成 myweb

【可见等级】设置成 公开

点击 【创建项目】

添加单个成员到项目中

点击左边菜单【设置】->【成员】进入"项目成员"

【添加成员】中的【选择要邀请的成员】选择 yc

【选择角色权限】选择 主程序员

点击 【添加到项目】

通过在群组中添加成员,加入到项目中

点击页面上方的【群组】->【您的群组】选择 yc666

点击左边菜单【成员】

【添加成员到 yc666】选择 yc,主程序员

点击 【添加到群组】

6、使用自己创建的账户进行管理

退出当前账户,使用自己创建的账户 yc登录(ycyc/abc@1234)

第一次登录会被强制要求修改密码(ycyc/root@123),可与旧密码相同,再重新登录

3.1、git的使用

对于没有创建过 git 版本库的主机

cd /opt

git clone 表示去远程到仓库去克隆到本地计算机

git clone http://192.168.88.78/yc666/newweb.git

需要账户密码

查看一下

ls -A myweb/

.git

会发现有.git,这个才是仓库

cd newweb/

touch README.md

加载到本地工作区域

git add README.md

提交信息到远程

git commit -m "add README"

第一次需要配置

git push -u origin master

  • -u--set-upstream:这个选项的作用是设置上游(upstream)分支。简单来说,它会在本地分支和远程分支之间建立一个关联,这样以后你就可以直接使用 git pullgit push 而不必指定远程仓库和分支名称了。这个关联会保存在你的 Git 配置中,使得未来的操作更加方便。

  • origin:这是远程仓库的默认名称。当你克隆一个仓库时,Git 会自动为这个远程仓库命名为 origin。你可以通过 git remote -v 命令查看所有远程仓库及其对应的 URL。

  • master:这是你要推送的本地分支的名称,同时也是目标远程仓库中的分支名称。

对于已存在 git 版本库的主机

(1)使用 http 协议将本地软件项目代码推送到 git 服务器

cd ~/myweb/

添加一个远程仓库上传代码方式的 url 名称为 origin

git remote add origin http://192.168.88.78/yc666/newweb.git

  • Git 会在你的本地仓库中添加一个名为 origin 的远程仓库,并将其 URL 设置为 http://192.168.88.78/yc666/newweb.git。之后,你就可以使用 git push origingit pull origin 等命令来与这个远程仓库进行交互了。

查看远程仓库

git remote

推送本地代码到远程仓库

git push -u origin --all #输入账户名和密码

推送 tag 标记到远程仓库

git push -u origin --tags #输入账户名和密码

刷新页面即可看到上传的代码和对应的 tag 标记

(2)使用 ssh 免密推送代码

点击右上角的用户选项选择【设置】

点击左边菜单【SSH密钥】,再点击页面中的【generate one】查看如何生成密钥

ssh-keygen -t rsa -C "yc@yc.com" -b 4096 #一路回车

cat ~/.ssh/id_rsa.pub

将公钥拷贝到网页中的公钥文本框中,再点击【增加密钥】

查看当前的 remote 方式

git remote show origin

更换上传代码方式

git remote remove origin #删除以前的方式

添加远程仓库上传代码方式

git remote add origin git@192.168.88.78:yc666/newweb.git

git remote show origin

推送测试

echo '<h3>new line</h3>' >> index.html

git add .

git commit -m "modify index third"

创建标签

git tag v1.4

git push

git push -u origin --tags

刷新页面即可看到上传的代码和对应的 tag 标记

相关推荐
JAVA终结者4 小时前
IDEA结合GitLab使用
gitlab
江梦寻19 小时前
GitHub、Google等镜像加速地址收集
前端·后端·编辑器·gitlab·github·gitcode
guangshui5162 天前
2030. gitLab A仓同步到B仓
gitlab
丁总学Java2 天前
推送(push)项目到gitlab
gitlab
yanlaifan2 天前
共享GitLab中CICD自动生成的软件包
gitlab
繁缕怀夕2 天前
【gitLab正常使用记录】
gitlab
joker.zeng2 天前
前端项目使用gitlab-cicd+docker实现自动化部署
前端·ci/cd·docker·gitlab
鲁子狄2 天前
[笔记] Git 实战指南:Git命令大全 与 Git提交信息规范
笔记·git·gitee·gitlab·github·gitea·gitcode
superman超哥3 天前
GitLab基础环境部署:Ubuntu 22.04.5系统在线安装GitLab 17.5.2实操手册
ubuntu·ci/cd·gitlab·流水线·代码仓库