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

简介: 关于git、gitlab、jenkins你知道多少?

(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. 更改:<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
6. 
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

相关文章
|
1天前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
5月前
|
Linux 网络安全 开发工具
码农日常生活之Git & Gitlab & Gitk
本文是关于Git和GitLab的配置使用教程,包括基础设置、日常命令操作以及图形工具的使用。
62 2
|
26天前
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
48 1
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
85 0
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
272 0
|
5月前
|
数据可视化 jenkins 测试技术
GitLab CI/CD 和 Jenkins对比
8月更文挑战第25天
531 5
|
5月前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
93 3
|
5月前
|
jenkins Devops Java
jenkins学习笔记之十:配置Gitlab提交流水线
jenkins学习笔记之十:配置Gitlab提交流水线
|
5月前
|
安全 jenkins 持续交付
jenkins学习笔记之八:jenkins认证集成gitlab
jenkins学习笔记之八:jenkins认证集成gitlab
|
5月前
|
存储 Ubuntu jenkins
CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse
CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse
248 0