01-DevOps代码上线-git入门及gitlab远程仓库

一、准备学习环境

10.0.0.71-gitlab            2c2g-20GB

10.0.0.72-jenkins         2c2g-20GB

10.0.0.73-sonarqube   1c1g-20GB

10.0.0.74-nexus          1c1g-20GB

10.0.0.75-dm               1c1g-20GB   (模拟写代码服务器)

        在centos系统中,本身就有git,如果没有yum安装一下git

[root@gitlab ~]# git --version
git version 1.8.3.1

二、git的使用

1,模拟一个代码目录

[root@gitlab ~]# mkdir -pv /xinjizhiwa/git_student 
[root@gitlab ~]# cd /xinjizhiwa/git_student

2,对代码目录进行git初始化

        你想要使用git,就需要先有一个git仓库,用来存放代码,所以,需要初始化出一个git仓库,初始化之后,该目录才成为【git本地仓库】

· 配置git本地仓库

用户名、用户邮箱、代码状态颜色开启

[root@gitlab git_student]# git config --global user.name 'xinjizhiwa'
[root@gitlab git_student]# git config --global user.email '626080079@qq.com'
[root@gitlab git_student]# git config --global color.ui true

· 查看git仓库配置信息

[root@gitlab git_student]# git config --list

· 初始化git本地仓库

[root@gitlab git_student]# git init

查看本地隐藏目录,有了【.git】就证明初始化成功了!~

至此,初始化git本地仓库,就完成了!~

3,代码的上线流程

        本地仓库的代码,有三种状态;

        只有提交到【本地仓库】的代码;才能够被推送到【远程仓库】;

· 模拟写一个代码

[root@gitlab git_student]# echo 'xinjizhiwa-v1.0' > xinjizhwa.txt

· 查看此时仓库的状态

        会看到一个【红色】的我们写的代码文件,证明是“草稿阶段”的代码;

[root@gitlab git_student]# git status

· 将代码提交到暂存区

[root@gitlab git_student]# git add .

再次查看代码状态,发现“它绿了”,就证明该代码,已经被提交到了【暂存区】;

· 将代码提交到本地仓库

        将暂存区的代码,提交到【本地仓库】,同时写个备注信息“v1.0”

[root@gitlab git_student]# git commit -m 'v1.0'

再次查看git仓库状态,什么都没有了~就证明,我们提交代码到【本地仓库】成功了;

[root@gitlab git_student]# git status

此时,代码提交到本地仓库,就完成了;

4,代码回滚

        在正常的工作当中,我们有一种极端情况,就是,代码写错了,但是,不小心还提交到了代码本地仓库,怎么办呐?这就涉及到了我们接下来的知识点,代码回滚;

· 查看下本地的代码文件

· 再重新编辑代码文件

追加一段代码到代码文件中,模拟,代码新版本;

[root@gitlab git_student]# echo 'xinjizhiwa-v2.0' >> xinjizhwa.txt

· 查看仓库状态

[root@gitlab git_student]# git status

发现代码文件的状态,又红了!~说明代码有修改,并还是草稿阶段;

· 将代码提交到本地仓库

[root@gitlab git_student]# git add .
[root@gitlab git_student]# git commit -m 'v2.0'

· 【重点】查看本地代码的版本

就是查看我们一共有多少个版本的代码;

[root@gitlab git_student]# git reflog

拓展:其实【git  reflog】是简写版本信息,想要显示全称,直接使用【git  log】

· 查看此时的代码

·【重点】回滚到指定版本

目前代码有两个版本,v1.0和v2.0;我们将代码回溯到v1.0;

[root@gitlab git_student]# git reset --hard 716ea3c

· 验证查看代码信息

        发现代码信息,内容中,回到了1.0的状态;

此时,在查看版本,发现,版本成了三个,有两个是用了一个id号,就证明,我们的过程是回溯的;

至此,我们的本地仓库的代码回滚,就学习完毕了;

5,git本地仓库分支branch

        由于开发一个项目,并不是一个人来完成的,需要研发团队的配合,于是,就有了“分支”的概念,用于院队研发协作使用;

        一般情况下,研发阶段端的代码,同属于一个分支,当项目开发结束后,会提交为一个master分支,作为已完成的项目提交。

· 查看当前代码的分支

[root@gitlab git_student]# git branch

可以看到,git仓库默认将代码都在master分支上;【*】代表当前所在的分支;

· 创建一个分支

穿件一个叫xinjizhiwa的分支;

[root@gitlab git_student]# git branch xinjizhiwa

再次查看分支

· 切换当前分支

[root@gitlab git_student]# git checkout xinjizhiwa

· 在新的分支下修改代码

[root@gitlab git_student]# echo 'xinjizhiwa-v3.0' >> xinjizhwa.txt

提交代码到本地仓库

[root@gitlab git_student]# git add .
[root@gitlab git_student]# git commit -m 'v3.0'
[root@gitlab git_student]# cat xinjizhwa.txt 
xinjizhiwa-v1.0
xinjizhiwa-v3.0

· 切换回master查看代码

        你会发现,两个分支中的代码,是不一样的;

[root@gitlab git_student]# git checkout master

· 将分支代码合并

        就是将xinjizhiwa分支上的代码,合并到当前master分支上;

[root@gitlab git_student]# git merge xinjizhiwa

此时查看代码,master分支也是最新的代码了;

至此,git本地仓库的分支,就学习完毕了;

三、自建远程仓库gitlab

1,安装部署gitlab远程仓库

· 下载gitlab软件包

本次学习,为了大家方便,给大家准备了软件包在百度云盘;

链接:https://pan.baidu.com/s/1PM_QIkTaBGFUPRy0Ybw45Q?pwd=6vc2 
提取码:6vc2

· 上传安转软件包

[root@gitlab ~]# rz -E
[root@gitlab ~]# yum -y localinstall gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm

· 修改gitlab的配置文件

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://gitlab.xinjizhiwa.com'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false

· 重启gitlab

[root@gitlab ~]# gitlab-ctl reconfigure

· 查看gitlab状态

[root@gitlab ~]# gitlab-ctl status | column -t

拓展:column  -t  表示列对齐;

2,gitlab浏览器页面操作

· 浏览器访问

注意,先本地hosts解析;

gitlab.xinjizhiwa.com

账号:root

密码:

查看密码

[root@gitlab ~]# cat /etc/gitlab/initial_root_password

· 汉化页面

【点击头像】-【preferences】

【Localization】-【langusge】-【chinsese】-【save change】-【刷新页面】

汉化成功

· 修改gitlab的密码

3,正式使用gitlab

· 创建项目

选择创建空白项目

· 查看项目列表

【点击logo】-【项目】就可以看到刚刚创建的项目了;

4,本地仓库连接远程仓库gitlab

· 生成linux本地秘钥

[root@gitlab ~]# ssh-keygen -t rsa -C 626080079@qq.com

#一路回车

· 复制本地秘钥-公钥

[root@gitlab ~]# cat /root/.ssh/id_rsa.pub

· 粘贴公钥到gitlab

· 本地添加远程仓库

[root@gitlab git_student]# git remote add origin git@gitlab.xinjizhiwa.com:gitlab-instance-ffdef71f/xinjizhiwa-web.git

· 查看本地的远程仓库列表

[root@gitlab git_student]# git remote -v

推送前,虚拟机也需要本地解析hosts,不然识别不了假域名

· 推送代码到远程仓库

推送master分支到远程仓库;

[root@gitlab git_student]# git push -u origin "master"

· 页面查看是否有这个分支和代码

5,git的标签

· 给当前分支创建标签

[root@gitlab git_student]# git tag -a "v1.0" -m "v1.0"

· 推送标签代码到远程仓库

[root@gitlab git_student]# git push -u origin --tag v1.0

6,gitlab的用户管理

        为了对企业当中的分属不同部门,不同人员的操作权限,gitlab给出了用户和用户组的功能。

· 创建用户

【点击目录】-【管理员】-【用户】

【点击新用户】

编辑新用户信息

【点击创建】

点击【编辑】

设置密码

· 创建用户组绑定用户

【目录】-【管理员】-【群组】-【新建群组】

设置名称-【保存】

【管理权限】

【邀请用户】

· 创建一个新项目

新建项目,绑定群组

· 新用户的主机免秘钥登录gitlab

生成秘钥

[root@dm dev]# ssh-keygen -t rsa -C xinjizhiwa@qq.com

复制秘钥公钥

开发新用户的集群,ssh免秘钥登录gitlab

· 新用户的主机本地解析一下假域名

· root用户主机推送代码到新项目

root用户添加项目到本地git

[root@gitlab git_student]# git remote  add  origin02 git@gitlab.xinjizhiwa.com:xinjizhiwa/xinjizhiwa-dev.git

root推送代码到新仓库

[root@gitlab git_student]# git push -u origin02 "master"

· 开发用户拉取gitlab仓库的项目代码

[root@dm dev]# git config --global user.name 'xinjizhiwa-dev'
[root@dm dev]# git config --global user.email 'xinjizhiwa@qq.com'
[root@dm dev]# git config --global color.ui true
[root@dm dev]# git config --list
user.name=xinjizhiwa-dev
user.email=xinjizhiwa@qq.com
color.ui=true

拉取仓库代码到本地

[root@dm dev]# git clone git@gitlab.xinjizhiwa.com:xinjizhiwa/xinjizhiwa-dev.git

进入代码目录

[root@dm dev]# cd xinjizhiwa-dev/

· 子账号模拟修改代码

[root@dm xinjizhiwa-dev]# echo "xinjizhiwa-v4.0" >> xinjizhwa.txt

提交修改好的代码到本地仓库

[root@dm xinjizhiwa-dev]# git add .
[root@dm xinjizhiwa-dev]# git commit  -m "v4.0" 

合并默认的master代码到xinjizhiwa分支

[root@dm xinjizhiwa-dev]# git branch xinjizhiwa
[root@dm xinjizhiwa-dev]# git branch 
* master
  xinjizhiwa
[root@dm xinjizhiwa-dev]# git checkout xinjizhiwa 
[root@dm xinjizhiwa-dev]# git merge master 
[root@dm xinjizhiwa-dev]# cat xinjizhwa.txt 
xinjizhiwa-v1.0
xinjizhiwa-v3.0
xinjizhiwa-v4.0

· 子账号推送代码到项目远程仓库

[root@dm xinjizhiwa-dev]# git push -u origin "xinjizhiwa"

· 登录新用户请求合并

· 再登录root合并代码

合并过后,你会发现,就剩下master了。合并成功

那么至此,项目组(群组),合并提交代码到远程仓库,管理员审核代码并合并成功,整套流程学习完毕了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/441179.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024 批量下载公众号文章内容/阅读数/在看数/点赞数/留言数/粉丝数导出pdf文章备份(带留言):公众号记忆承载近1500篇历史文章在线查看,找文章方便了

关于公众号文章批量下载,我之前写过很多文章: 视频更新版:批量下载公众号文章内容/话题/图片/封面/音频/视频,导出html,pdf,excel包含阅读数/点赞数/留言数 2021陶博士2006/caoz的梦呓/刘备我祖/六神读金…

微服务架构 | 多级缓存

INDEX 通用设计概述2 优势3 最佳实践 通用设计概述 通用设计思路如下图 内容分发网络(CDN) 可以理解为一些服务器的副本,这些副本服务器可以广泛的部署在服务器提供服务的区域内,并存有服务器中的一些数据。 用户访问原始服务器…

HNU-算法设计与分析-甘晴void学习感悟

前言 算法设计与分析,仅就课程而言,似乎是数据结构与算法分析的延续 教材使用: 课程 关于课程,橙学长讲的非常清晰,我深以为然。 HNUCS-大三课程概览-CSDN博客文章浏览阅读1.3k次,点赞5次,收…

JVM-垃圾收集底层算法实现

三色标记 背景描述 在并发标记的过程中,因为标记期间应用线程还在继续跑,对象间的引用可能发生变化,多标和漏标的情况就有可能发生。 如何解决上面的问题? 引入“三色标记” 意思就是,把Gcroots可达性分析遍历对象过程…

【北京迅为】《iTOP-3588开发板网络环境配置手册》第4章 开发板直连电脑配置方法(无线上网)

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

qtvs2022工程cmakelist.txt添加QCharts模块

find_package(QT NAMES Qt5 COMPONENTS Core Gui Widgets OpenGL Concurrent Charts Sql Network REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Widgets OpenGL Charts Concurrent Sql Network REQUIRED)这里find_package只是设置搜索路径,为…

使用ffmpeg提取视频中的音频并保存为单声道wav

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 $ ffmpeg -i C0439.MP4 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable…

设计模式学习笔记 - 设计原则 - 10.实战:针对非业务的通用框架开发,如何做需求分析和设计及如何实现一个支持各种统计规则的性能计数器

前言 接下来我们在结合一个支持各种统计规则的性能计数项目,学习针对一个非业务的通用框架开发,如何来做需求分析、设计和实现,同时学习如何灵活应用各种设计原则。 项目背景 设计开发一个小的框架,能够获取接口调用的各种统计信…

Mysql中的MVCC

”真正学会,如你般自由~“ MVCC机制简介 MVCC(Multi-Version-Concurrency-Control)多版本并发控制,MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程中实现事务内存。 取自 MVCC存在被…

基于Python3的数据结构与算法 - 12 数据结构(列表和栈)

目录 一、引入 二、分类 三、列表 1. C语言中数组的存储方式 2. Python中列表的存储方式 四、栈 1. 栈的应用 -- 括号匹配问题 一、引入 定义:数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。简单来说&#x…

防御保护 IPSEC VPPN实验

实验背景:FW1和FW2是双机热备 主备备份模式。 实验要求:在FW5和FW3之间建立一条IPSEC通道,保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 IPSEC VPPN实验配置(由于是双机热备状态,所以FW1和FW2只需要配置FW1主设…

Cloud-Nacos服务治理-Feign服务调用

构建Cloud 父工程依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.…

设计模式-行为型模式-职责链模式

在软件系统运行时&#xff0c;对象并不是孤立存在的&#xff0c;它们可以通过相互通信协作完成某些功能&#xff0c;一个对象在运行时也将影响到其他对象的运行。行为型模式&#xff08;Behavioral Pattern&#xff09;关注系统中对象之间的交互&#xff0c;研究系统在运行时对…

基于springboot的某大学外卖系统的实现(源码+论文)

文章目录 目录 文章目录 前言 一、功能设计 二、功能实现 1 后台登录 2管理员界面 3员工信息管理 4客户信息管理 三、库表设计 四、论文 前言 如今&#xff0c;信息化不断的高速发展&#xff0c;社会也跟着不断进步&#xff0c;现今的社会&#xff0c;各种工作都离不开信息化技…

蓝桥杯每日一题:烤鸡dfs

这道题考察了dfs的应用&#xff0c;题干十分有趣&#xff0c;思考过程对以后类似题目也有很强的参考性&#xff0c;一起来学习吧&#xff01; 题目&#xff1a; # 烤鸡 ## 题目背景 猪猪 Hanke 得到了一只鸡。 ## 题目描述 猪猪 Hanke 特别喜欢吃烤鸡&#xff08;本是同畜…

图片速览 BitNet: 1-bit LLM

输入数据 模型使用absmax 量化方法进行b比特量化,将输入量化到 [ − Q b , Q b ] ( Q b 2 b − 1 ) \left[-Q_{b},Q_{b}\right](Q_{b}2^{b-1}) [−Qb​,Qb​](Qb​2b−1) x ~ Q u a n t ( x ) C l i p ( x Q b γ , − Q b ϵ , Q b − ϵ ) , Clip ⁡ ( x , a , b ) ma…

供应链管理系统(SCM):得供应链得天下不是空话。

2023-08-26 15:51贝格前端工场 Hi&#xff0c;我是贝格前端工场&#xff0c;优化升级各类管理系统的界面和体验&#xff0c;是我们核心业务之一&#xff0c;欢迎老铁们评论点赞互动&#xff0c;有需求可以私信我们 一、供应链对于企业的重要性 供应链对企业经营的重要性不可…

【ViT】Vision Transformer的实现01 patch embedding

对于224*224的图像&#xff0c;将它输入到Transformer里面&#xff0c;就需要将图像展开成一系列的token&#xff0c; 如果逐像素视为token进行注意力的计算&#xff0c;难免计算量太大&#xff0c;因此一个更加合理的想法是将图像划分为一个个的patch 将每个patch进行embeddin…

Vue3+element-plus复杂表单分组处理

一、为什么表单要分组处理&#xff1f; 方便表单字段的复用&#xff1a;例如&#xff0c;你的表单有十个字段会在很多的表单都会用到&#xff0c;那么表单则需要进行分组进行表单复用&#xff1b;实现不同角色的表单权限控制&#xff1a;例如一个表单有60个字段&#xff0c;角…

3DEXPERIENCE Works八大核心优势分析

云技术正在加速普及&#xff0c;助力各行各业数字化转型。根据IDC 2023年12月发布的报告&#xff0c;2023年全球云计算市场规模达到3329亿美元&#xff0c;同比增长19.4%。其中&#xff0c;公有云市场规模达到2587亿美元&#xff0c;同比增长21.5%;私有云市场规模达到742亿美元…