01 DevOps 之 Git 命令使用

news2025/1/17 13:52:09

1. 前言

由于项目没有外网,需要在内网打镜像。但自己对git 还不是太熟悉。看着pipline 一脸懵逼。所有针对git 命令在工作中常用的参数及用法简单学习记录下。因为git 是DevOps中的编码的一部分,下面先介绍下DevOps整体的框架。

1.1 DevOps介绍

DevOps的前生今世
DevOps是一种方法或理念,它涵盖开发、测试、运维的整个过程。DevOps是提高软件开发、测试、运维、运营等各部门的沟通与协作质量的方法和过程,DevOps强调软件开发人员与软件测试、软件运维、质量保障(QA)部门之间有效的沟通与协作,强调通过自动化的方法去管理软件变更、软件集成,使软件从构建到测试、发布更加快捷、可靠,最终按时交付软件。
在这里插入图片描述

1.2 DevOps 工具链

DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了 一大批优秀的工具,这些工具包括开发、测试、运维的各个领域,例如:GitHub、Git/SVN、Docker、Jenkins、 Hudson、Ant/Maven/Gradle、Selenium、QUnit、JMeter等。下图是DevOps相关的工具集:
在这里插入图片描述

1.3 企业级DevOps 知识体系

在这里插入图片描述

2. git 常用参数

git 技能树链接

2.1 git全局设置

git config --global user.name "xxxxx"
git config --global user.email "xxxxxx@xxx.com"
#解决每次拉取都需要输入密码
#方法一:这会在gitconfig目录下创建一个文件,用于记录账号和密码
git config --global credential.helper store
#方法二:拉取时指定账户和密码
git clone http://账户:密码@仓库地址 <拉取后指定目录> <--branch=分支名>
git clone  http://liuyan:liuyan123@192.168.221.143:9000/liuyan/xm-admin.git xm-admin --branch=liuyan

2.2 创建git仓库

mkdir no-temp
cd no-temp
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/xxxx/xxxx.git
git push -u origin master

2.3 git 原理图

首先看下git 的原理图
在这里插入图片描述

git init #初始化项目文件目录,会在项目目录中增加一个.git用于上传你的项目
git remote add origin +仓库地址 #上传操作
git add . #将文件添加至暂存区,类似于点击文件,选择复制,这样粘贴板里有复制的文件,add操作大致如此
git commit -m "对本次操作需要添加的注释"#对本次操作需要添加的注释
git push #将你的文件传送至github仓库
git pull #为避免出错,每次开发完成以及开发结束后都应该git pull一下

2.4 git 命令速查表

在这里插入图片描述

3. 工作中常用的git命令

3.1 创建文件夹并初始化本地仓库

mkdir test
cd test
git init

3.2 关联本地仓库和远程仓库

git remote add origin http://192.168.221.143:9000/liuyan/xm-admin.git
#说明:
#origin表示远程库的名字,可以随意,一般默认为origin;
#origin后面表示远程仓库的真实地址,如下图所示。我这里使用的是SSH地址,当然也可以使用HTTPS地址,复制过来就行。

3.3 拉取代码分支(标签)

git clone http://192.168.221.143:9000/liuyan/xm-admin.git xm-admin --branch=liuyan 
#liuyan是自己在代码仓库新建的分支,也可换成master等其他分支或标签
#有的同学可能会用git pull,git pull = git fetch + git merge,因为pull拉取会合并本地文件,可能会导致冲突。
#这一步操作可能会要求输入密码

3.4 创建本地分支,并切换到本地分支

cd xm-admin
git branch dev 
git checkout dev
git branch -a
#* dev
#  liuyan
#  remotes/origin/HEAD -> origin/master

3.5 更新分支代码[此处从分支liuyan更新]

git pull origin liuyan
#1115.txt是在gitlab 新建的文件
remote: Counting objects: 2, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
From http://192.168.221.143:9000/liuyan/xm-admin
 * branch            liuyan     -> FETCH_HEAD
Updating a101c2c..b30e758
Fast-forward
 1115 => 1115.txt | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename 1115 => 1115.txt (100%)

3.6 修改本地分支,并查看状态

echo "bbb" > bbb.txt
git status
# On branch dev
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       bbb.txt
nothing added to commit but untracked files present (use "git add" to track)

3.7 提交暂缓区,并上传至远程分支

git add bbb.txt #提交到暂缓区
git commit -m "add bbb.txt " #注释信息
[dev 7ffcc5e] add bbb.txt
 1 file changed, 1 insertion(+)
 create mode 100644 bbb.txt

3.8(修改代码后)推送本地分支到远程分支

git branch -u origin/liuyan #git 把本地分支设成远程分支的跟踪分支:
git branch -vv              #git查看追踪分支:
git push origin dev:liuyan  #git push到远端不同名分支:
#Everything up-to-date报错链接:http://t.csdn.cn/lEf6T

3.9 合并其他分支到master并推送到远程仓库

#1、假如我们现在在dev分支上,刚开发完项目,执行以下命令提交代码到dev分支
git status
git add .
git commit -m 'dev'
git pull
git push -u origin dev
#2、然后我们要把dev分支的代码合并到master分支上 ,所以首先切换到master分支上
git checkout master
#3、如果是多人开发的话 需要把远程master上的代码pull下来,保险起见,最好pull一下
git pull origin master
#4、然后我们把dev分支的代码合并到master上
git merge dev
#5、然后查看状态
[root@gitlab xm-admin]# git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean
#6 上面的意思就是你有1个commit,需要push到远程master上
git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To http://192.168.221.143:9000/liuyan/xm-admin.git
   c647f96..8cdba14  master -> master
#7、合并完成,最后开发的时候 切换分支到 dev 就可以了 git checkout dev

3.10 删除代码仓库代码

3.10.1删除master分支代码

#1.拉取代码
git pull origin master
#2.删除代码
git rm 2200.txt 1115_01.txt test1115.txt bbb.txt
#3.重新提交
git add .
git commit -m "delete 2200.txt 1115_01.txt test1115.txt bbb.txt"
git push origin master

3.10.1删除其他分支代码

#1.拉取分支代码
git clone http://192.168.221.143:9000/liuyan/xm-admin.git  --branch=liuyan
#2.删除代码
cd xm-admin
git rm 1115_01.txt 2200.txt bbb.txt liuyan.md
#重新提交代码到分支liuyan'
git add .
git commit -m "delete 1115_01.txt 2200.txt bbb.txt liuyan.md"
git push origin liuyan
#以下是删除输出结果
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 241 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for liuyan, visit:
remote:   http://192.168.221.143:9000/liuyan/xm-admin/merge_requests/new?merge_request%5Bsource_branch%5D=liuyan
remote:
To http://192.168.221.143:9000/liuyan/xm-admin.git
   8cdba14..c09dd50  liuyan -> liuyan

4. 其他常用参数

4.1 克隆最近一次版本

git clone --depth=1

#当项目过大时,git clone时会出现error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504 Gateway Time-out的问题,如下图
在这里插入图片描述
#原因分析:
#如果我们执行git clone 这个仓库时,会把所有的历史协作记录都clone下来,这样整个文件会非常大,其实对于我们直接使用仓库,而不是参与仓库工作的人来说,只要把最近的一次commit给clone下来就好了。这就好比一个产品有很多个版本,我们只要clone最近的一个版本来使用就行了 。实现这个功能就需要用到git clone --depth=1命令
#原因分析:
#如果我们执行git clone 这个仓库时,会把所有的历史协作记录都clone下来,这样整个文件会非常大,其实对于我们直接使用仓库,而不是参与仓库工作的人来说,只要把最近的一次commit给clone下来就好了。这就好比一个产品有很多个版本,我们只要clone最近的一个版本来使用就行了 。实现这个功能就需要用到git clone --depth=1命令

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux-磁盘分区,挂载

Linux分区 Linux来说无论有几个分区&#xff0c;分给哪一个目录使用&#xff0c;它归根结底就只有一个根目录&#xff0c;一个独立且唯一的文件结构&#xff0c;Linux中每个分区都是用来组成文件系统的一部分 Linux采用了一种载入的处理方法&#xff0c;它的整个文件系统包含了…

智能运维应用之道,告别企业数字化转型危机

面临的问题及挑战 数据中心发展历程 2000 年中国数据中心始建&#xff0c;至今已经历以下 3 大阶段。早期&#xff1a;离散型数据中心 IT 因以项目建设为导向&#xff0c;故缺乏规划且无专门运维管理体系&#xff0c;此外&#xff0c;开发建设完的项目均是独立运维维护&#…

rust编程初探-猜数游戏(chapter 2)

目录 1. 创建项目 2. 猜数的输入 3. 随机数生成 3.1 rand库依赖 3.2 随机数生成 4. 猜数和随机数的比对 4.1 std::cmp::Ordering类型 4.2 match表达式&#xff08;expression&#xff09; 4.3 输入类型的转换 5. 支持多次猜测&#xff08;使用循环&#xff09; 6. 错…

MySql学习之慢SQL优化和慢SQL案例

一、慢SQL优化思路 慢查询日志记录慢SQLexplain查询SQL的执行计划profile分析执行耗时Optimizer Trace分析详情 1、慢查询日志记录慢SQL show variables like slow_query_log%; show variables like long_query_time;查看下慢查询日志配置&#xff0c;我们可以使用show vari…

对MMVAE中IWAE代码实现的理解

原始的IWAE 优化目标&#xff1a; LIWAE(x1:M)Ez1:K∼qΦ(z∣x1:M)[log⁡∑k1K1KpΘ(zk,x1:M)qΦ(zk∣x1:M)]&#xff08;1&#xff09;\mathcal{L}_{\mathrm{IWAE}}\left(\boldsymbol{x}_{1: M}\right)\mathbb{E}_{\boldsymbol{z}^{1: K} \sim q_{\Phi}\left(\boldsymbol{z} …

JavaScript

目录 1、JavaScript简介 2、JavaScript引入方式 2.1、内部脚本 2.2、外部脚本 3、JavaScript基础语法 3.1、书写语法 3.2、输出语句 3.3、变量 3.4、数据类型 3.5、运算符 3.5.1、 和 的区别 3.5.2、类型转换 3.6、流程控制语句 3.6.1、if语句 3.6.3、for循环语…

【毕业设计】时间序列天气预测系统 - LSTM

文章目录0 前言1 数据集介绍2 开始分析2.1 单变量分析2.1.1 温度变量2.2 将特征和标签切片2.3 建模2.4 训练模型2.5 多变量分析2.5.1 压强、温度、密度随时间变化绘图2.5.2 将数据集转换为数组类型并标准化2.5.3 多变量建模训练训练3 最后0 前言 &#x1f525; Hi&#xff0c;…

vue项目身份认证,vuex,token

vuex存储用户登录信息以及解决页面刷新vuex数据丢失问题 我的文章&#xff1a;vuex页面刷新数据丢失问题的多种解决方法 有写到 身份认证 虽然完成了登录功能&#xff0c;但实际上现在用户没登录也能访问(对应的url),这样的话显得登录功能毫无意义。 为了让登录变得有意义&am…

【Linux】Linux系统管理详解

目录一.服务管理1.Linux中的进程和服务2.systemctl&#xff08;CentOS 7版本&#xff09;(1)基本语法(2)经验技巧二.系统运行级别1.CentOS的运行级别三.配置服务开机自启和关闭防火墙1.图形化服务开机自启2.命令行服务开机自启3.关闭防火墙自启动四.关机重启以下内容都是基于Ce…

排序算法-希尔排序

希尔排序 概念 希尔排序(Shell Sort)是插入排序的一种&#xff0c;它是针对直接插入排序算法的改进。 希尔排序又称缩小增量排序&#xff0c;因 DL.Shell 于 1959 年提出而得名。 它通过比较相距一定间隔的元素来进行&#xff0c;各趟比较所用的距离随着算法的进行而减小&a…

通达信最新交易接口系统开发源码有哪些?

通达信最新交易接口其实跟市面上的自动交易接口api是比较安全稳定接口&#xff0c;只需要通过第三方证券公司完成交易&#xff0c;也或者是个人与机构做私募量化投资也是可以的。但是最近小编就有注意到&#xff0c;在此之前的通达信接口已经完成了再次升级&#xff0c;那么&am…

JAVA开发(分布式SpringCloud全家桶一些组件读法)

配置管理&#xff0c;服务发现&#xff0c;断路器&#xff0c;路由&#xff0c;微代理&#xff0c;事件总线&#xff0c;全局锁&#xff0c;决策竞选&#xff0c;分布式会话构成SpringCloud的集合。 Eureka服务注册与发现&#xff08;Eureka&#xff1a;怎么读&#xff1f;&…

没基础的大学生如何自学c语言 ?

C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点&#xff0c;在程序设计中备受青睐。真的太多人学也有太多要学的东西了&#xff0c;以至于后台总有人问C语言该怎么学&#xff0c;甚至还有具体问编程问题的。 这一点专门针对「大部分时间都在写着重复的代码&a…

uniapp初步搭建:如何引入uview库(跨移动多端ui库)

uView是uni-app生态专用的UI框架&#xff0c;uni-app 是一个使用 Vue.js 开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c; 可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台(引言自uni-app网) 1. 查看项目根目录有没有p…

公钥密码学中的公钥和私钥

公钥密码学解释&#xff1a;它是什么&#xff1f; 公钥基础设施 (PKI) 用于管理互联网通信中的身份和安全性。 启用 PKI 的核心技术是公钥密码术&#xff0c;这是一种依赖于使用两个相关密钥&#xff08;公钥和私钥&#xff09;的加密机制。 这两个密钥一起用于加密和解密消息。…

CM311-3_YST_晨星MSO9385_2+8_安卓9.0_TTL免费升级固件【含教程】

新魔百盒CM311-3_YST_晨星MSO9385_28_安卓9.0_TTL免费升级固件【含教程】 固件特点&#xff1a; 1、修改dns&#xff0c;三网通用&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、无开机广告&#xff0c;无系统更新&#xff0c;不在被强制升级&…

网站攻击技术,一篇打包带走!

大家好&#xff0c;今天给大家介绍一下&#xff0c;Web安全领域常见的一些安全问题。 1. SQL 注入 SQL注入攻击的核心在于让Web服务器执行攻击者期望的SQL语句&#xff0c;以便得到数据库中的感兴趣的数据或对数据库进行读取、修改、删除、插入等操作&#xff0c;达到其邪恶的…

分布式应用之监控平台zabbix的认识与搭建

内容预知 1.监控系统的相关知识 1.1 监控系统运用的原因 1.2 网站的可用性 1.3 市面上常用的监控系统 2.zabbix的相关知识 2.1 zabbix的概述 2.2 zabbix 是什么&#xff1f; 2.3 zabbix的监控原理 2.4 zabbix监控系统中五个常用程序 3. zabbix 服务端的部署 4. 部署…

C++ 不知图系列之基于链接表的无向图最短路径搜索

1. 前言 图的常用存储方式有 2 种&#xff1a; 邻接炬阵。 链接表。 邻接炬阵的优点和缺点都很明显。优点是简单、易理解&#xff0c;但是对于大部分图结构而言&#xff0c;都是稀疏的&#xff0c;使用矩阵存储&#xff0c;空间浪费就较大。 链接表相比较邻接矩阵存储方案…

团队的Code Review实践

高效地进行 Code Review 一直是我们想要做的事情&#xff0c;如何持续保持高效 Review 也是我们日常开发中所亟需解决的问题。 在疫情爆发之前&#xff0c;团队大多是线下一起办公。大家会聚在一起 Code Review&#xff0c;把讨论出的反馈记录在便利贴并贴在白板上。而当远程、…