关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

关于git、gitlab、jenkins你知道多少?(二)

发布时间:2023-06-30 19:01:21

(3)创建项目

        登录gitlab→admin area→new project→注意选择组。

(4)用户加入到组里

        登录gitlab→admin area→Groups→组名→添加用户→添加权限→Add。

4. Gitlab用户在组中有五种权限:

Guest:可以创建issue、发表评论,不能读写版本库

Reporter:可以克隆代码,不能提交,测试、产品经理可以赋予这个权限

Developer:可以克隆代码、开发、提交、push,开发人员可以赋予这个权限

Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限

Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

Gitlab中的组和项目有三种访问权限:

Private:只有组成员才能看到

Internal:只要登录的用户就能看到

Public:所有人都能看到

5. 上传ssh-key

        本地用户创建秘钥:ssh-keygen -t rsa //保持密码为空即可,按三次回车

        复制公钥内容:cat /root/.ssh/id_rsa.pub

        粘贴到web界面:右上角→用户→settings→SSH Keys。

6. 克隆下载项目

        点击README编辑修改文件模拟代码,编辑后保存该文件。

        回到项目首页复制该链接,通过执行命令链接web项目的文件。

[root@git data]# git clone git@192.168.1.4:dev/web.git

   

        执行成功后下面有一个web目录,进入里面就可以看到README文件内容了。

7. 修改文件内容,再推送上传代码(管理员身份)。

1. [root@git web]# vim README.md //加两行内容 2. aaaa 3. bbbb 4. cccc 5. dddd 6. [root@git web]# git add . 7. [root@git web]# git commit -m "add read v1" 8. [master dd32a4b] add read v1 9. 1 file changed, 3 insertions(+), 1 deletion(-) 10. [root@git web]# git push -u origin master

   

        master上传下载相对简单,下面就可以看到修改后的版本已经上传成功。如普通开发人员更新代码还需要看下面的相关配置。

8. 在客户机,普通开发人员更新代码流程(普通用户身份)。

(1)上传ssh秘钥

本地用户创建秘钥:[root@node ~]# ssh-keygen -t rsa

复制公钥内容:[root@node ~]# cat /root/.ssh/id_rsa.pub

声明客户端姓名:[root@node ~]# git config --global user.name user1

声明客户端邮箱:[root@node ~]# git config --global user.email user1@qq.com

        使用客户端登录,初次登录需要填写原始密码以及两次新密码。实验环境中还是设置12345678即可(输入三次12345678),而后输入用户名密码登录。

        使用user1登录:右上角→用户→settings→SSH Keys。

(2)关联远程仓库

1. [root@node ~]# mkdir /data 2. 3. [root@node ~]# cd /data 4. 5. [root@node data]# git init 6. 7. 初始化空的 Git 版本库于 /data/.git/ 8. 9. [root@node data]# git remote add origin git@192.168.1.4:dev/web.git

   

(3)下载同步代码

[root@node data]# git pull origin master

   

(4)创建分支,修改代码

1. [root@node data]# git checkout -b ops 2. 切换到一个新分支 'ops' 3. [root@node data]# vim README.md 4. aaaa 5. bbbb 6. 111111 7. 333333 8. [root@node data]# git add . 9. [root@node data]# git commit -m "read v2" 10. [ops 0eceec4] read v2 11. 1 file changed, 2 insertions(+), 2 deletions(-)

   

(5)推送ops分支(普通用户无权推送master)

[root@node data]# git push -u origin ops

   

(6)dev在web界面创建merge请求

        完成请求后可以看到ops到master的请求已经发送页面。

(7)切换到管理员登录,进入项目,同意merge请求。

        左侧面板→merge requests→版本名→merge(Remove source branch)。注:勾选Remove source branch表示同意请求后删除原文件。

git常用命令

git remote add [remote] [url] #添加(关联)远程库

git remote set-url [remote] [url] #修改远程仓库

git clone [url] #克隆远程仓库项目

git remote #查看指定远程仓库命名简写

git remote –v #查看远程仓库详细信息以及名称对应URL

git push -u remote master #第一次推送master分支的所有内容

git fetch remote [branch/tag] #下载远程仓库的所有变动

git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)

git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突

git push remote [branch/tag] --all #推送所有分支到远程仓库

git remote rename [oldname] [newname] #修改远程仓库名称

git remote remove [name] #删除远程仓库名称以及URL地址

1. git clone 与 git pull 相同点

相同点:都是从远程服务器拉取代码到本地

2. git clone 与 git pull 不同点

git clone:是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。

git pull:在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。

git pull = git fetch + git merge

CI&CD

        持续集成注重将各个开发者的工作集合到一个代码仓库中,通常每天会进行几次, 主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作。 

        持续交付的目的是最小化部署或发布过程中团队固有的摩擦, 它的实现通常能够将构建部署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。 

        持续部署是一种更高程度的自动化,无论何时代码有较大改动, 都会自动进行构建/部署。

Jenkins

        Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

官方文档:

https://www.jenkins.io/zh/doc/

下载jenkiins:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.222-1.1.noarch.rpm

安装Jenkins

1. 下载并安装jenkins包

[root@jenkins ~]# rpm -ivh /media/jenkins-2.222-1.1.noarch.rpm

   

2. 修改配置文件(默认jenkins端口为8080,如果同gitlab一起安装,需要修改端口)。

1. [root@jenkins ~]# vim /etc/sysconfig/jenkins 2. 3. JENKINS_USER="root" 4. 5. JENKINS_PORT="8081" 6. 7. [root@jenkins ~]# systemctl start jenkins 8. 9. [root@jenkins ~]# systemctl enable jenkins

   

3. 加快更新

1. [root@jenkins ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 2. 3. //修改内容 4. 5. 更改:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json6. 7. [root@jenkins ~]# vim /var/lib/jenkins/updates/default.json 8. 9. 更改第一行:把www.google.com改成www.baidu.com

   

4. 重启jenkins

[root@jenkins ~]# systemctl restart jenkins

   



/template/Home/leiyu/PC/Static