自学内容网 自学内容网

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、启动容器

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 pull 或 git 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 origin 和 git 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 标记


 


原文地址:https://blog.csdn.net/YCyjs/article/details/144266444

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!