Linux企业运维之git的使用

news2024/12/28 18:58:37

文章目录

  • 前言
  • 一、git简介以及基础操作
  • 二、github或者在gitee上创建项目并且上传本地项目
  • 自动化创建(触发jenkins)

前言

一、git简介以及基础操作

git 简单来说就是版本控制系统
但是相对于其他版本控制系统来说,它又具有一些优点:
1:git直接记录快照,而非差异比较
2:近乎所有操作都是本地执行,所以git的速度非常快
3:git保证数据的完整性
4:git一般只添加数据,所以说Git 几乎不会执行任何可能导致文件不可恢复的操作

A表示添加状态、M表示修改状态,右边显示表示在工作区,数据还没有add,左边显示表示数据已经add;下面就是具体的展示如何添加和修改,以及如何使用git命令来查看状态

[root@k8s4 demo]# echo msy > msy.txt
[root@k8s4 demo]# git status -s
?? msy.txt
[root@k8s4 demo]# git add msy.txt
[root@k8s4 demo]# git status -s
A  msy.txt
[root@k8s4 demo]# echo nb >> msy.txt
[root@k8s4 demo]# git status -s
AM msy.txt
[root@k8s4 demo]# git add msy.txt
[root@k8s4 demo]# git status -s
A  msy.txt
[root@k8s4 demo]# git commit -m "add msy.txt"
[master 2d061a3] add msy.txt
 1 file changed, 2 insertions(+)
 create mode 100644 msy.txt
[root@k8s4 demo]# git status -s

我们有的时候难免会生成一些临时文件,而这些临时文件一般都是以.开头的,但是在git commit 提交的时候不论是普通文件还是正式文件都会一起被提交,所以为了防止这个情况出现,我们创建.gitignore文件,在里边添加.*表示忽略所有以.开头的文件,这样我们在进行提交的时候就不会提交临时文件

**[root@k8s4 demo]# cat .gitignore
.*
[root@k8s4 demo]# l.
.  ..  .a  .b  .dir1  .git  .gitignore
**

git diff可以查看已暂存和未暂存的修改
git commit -a -m可以直接添加和提交,但是只是针对之前有提交过的文件,对于第一次创建的文件还是得先add后commit

[root@k8s4 demo]# echo 2002 >> msy.txt
[root@k8s4 demo]# git diff
diff --git a/msy.txt b/msy.txt
index 3c6527a..e746c23 100644
--- a/msy.txt
+++ b/msy.txt
@@ -1,2 +1,3 @@
 msy
 nb
+2002
[root@k8s4 demo]# git status -s
 M msy.txt
[root@k8s4 demo]# git commit -a -m "add msy.txt"
[master ef2e7e1] add msy.txt
 1 file changed, 1 insertion(+)
[root@k8s4 demo]# git status -s
[root@k8s4 demo]# cat msy.txt
msy
nb
2002

当我们删除文件后,如果想要找回,只需要git checkout 就可以找回刚刚删除的文件

[root@k8s4 ~]# cd demo
[root@k8s4 demo]# ls
msy.txt  README.md  test.txt
[root@k8s4 demo]# rm -f test.txt
[root@k8s4 demo]# git status -s
 D test.txt
[root@k8s4 demo]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    test.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
[root@k8s4 demo]# git checkout -- text.txt
error: pathspec 'text.txt' did not match any file(s) known to git.
[root@k8s4 demo]# git checkout -- test.txt
[root@k8s4 demo]# ls
msy.txt  README.md  test.txt

当我们在工作区删除文件且add并且提交之后,如果再次想要找回就需要版本回退,我们可以git log查看日志或者git reflog 来简易查看日志,并且通过git reset --hard来进行版本回滚

[root@k8s4 demo]# git rm test.txt
rm 'test.txt'
[root@k8s4 demo]# git commit -m "delete test.txt"
[master 12ddd8e] delete test.txt
 1 file changed, 3 deletions(-)
 delete mode 100644 test.txt
[root@k8s4 demo]# ls
msy.txt  README.md
[root@k8s4 demo]# git status -s
[root@k8s4 demo]# git log
commit 12ddd8e627e707c8883a6d0dec763fd3f6a57363
Author: Msy <msy@westos.org>
Date:   Wed Nov 16 23:29:10 2022 +0800

    delete test.txt

commit ef2e7e18800f2fc5ae8e5301d38af72419c4ce07
Author: Msy <msy@westos.org>
Date:   Wed Nov 16 18:15:16 2022 +0800

    add msy.txt

commit 2d061a3a271c5b230c7b44d9d4719843f440ff96
Author: Msy <msy@westos.org>
Date:   Wed Nov 16 13:38:24 2022 +0800

    add msy.txt

commit 6351510677d3dc5ca3f13ab2a988d7a700858837
Author: Msy <msy@westos.org>
Date:   Wed Nov 16 13:36:01 2022 +0800

    add test.txt

commit 87785ad6aa728539714743b8777814e1b7091acc
Author: Msy <msy@westos.org>
Date:   Wed Nov 16 13:05:20 2022 +0800

    add README.md

commit dc85ee9e977599ca912e376ef525b85bd0efa3d8
Author: Msy <msy@westos.org>
Date:   Sun Nov 13 10:27:23 2022 +0800

    add test.txt

commit 42c38e24fedd3391699f8355e1b08d8f9f1d3916
Author: Msy <msy@westos.org>
Date:   Sun Nov 13 10:21:33 2022 +0800

    add README.md
[root@k8s4 demo]# git reflog
12ddd8e HEAD@{0}: commit: delete test.txt
ef2e7e1 HEAD@{1}: commit: add msy.txt
2d061a3 HEAD@{2}: commit: add msy.txt
6351510 HEAD@{3}: commit: add test.txt
87785ad HEAD@{4}: commit: add README.md
dc85ee9 HEAD@{5}: reset: moving to dc85ee9
2da336b HEAD@{6}: commit: delete test.txt
dc85ee9 HEAD@{7}: commit: add test.txt
42c38e2 HEAD@{8}: commit (initial): add README.md
[root@k8s4 demo]#  git reset --hard ef2e7e1
HEAD is now at ef2e7e1 add msy.txt
[root@k8s4 demo]# ls
msy.txt  README.md  test.txt

二、github或者在gitee上创建项目并且上传本地项目

首先在github上新建项目,并且添加公钥
公钥的位置可以用下面的方式获取,如果没有也可以ssh-keygen来获取

[root@k8s4 ~]# cd .ssh/
[root@k8s4 .ssh]# ls
id_rsa  id_rsa.pub  known_hosts
[root@k8s4 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6U8ejrTO2xNAGk0B6Y4BhrVGWDprZAEP6HSJOIra2Lxn5KYxCZX9MrfRcauCzMX8LZ/U1hFRTlX1gynxIgSq5D8cs9DQcxvTqMDyFYEdCcfqRhAH5GuyOMAZV4GWoPHoiALR3nwaBXRyjLowiC+TZG/7RjBP+JCay/Xrx7/klpvEi/VwQ9My5ya1efCgYuFt1KYRpQqb8wo47C4vfD2XyZYyhwlmQzLTx0nK+V0zT6SVW4Z5DlL2m+MtLhc7tq4ryMyy4xQARFOAV1KaRKZ9O5IzkMJAhHD6NKfljSB/QVUoMZoHWN8QAG8uIVMSrGAQkjAp+zrQRju2tA4OEv8KL root@k8s4

添加、切换到主分支、上传然后在github界面刷新就可以看到我们的代码同步到了github上

[root@k8s4 demo]# git remote add origin git@github.com:moumumu/demo.git
[root@k8s4 demo]# git remote -v
origin  git@github.com:moumumu/demo.git (fetch)
origin  git@github.com:moumumu/demo.git (push)
[root@k8s4 demo]# git branch -M main
[root@k8s4 demo]# git push -u origin main
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
ECDSA key fingerprint is MD5:7b:99:81:1e:4c:91:a5:0d:5a:2e:2e:80:13:3f:24:ca.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,20.205.243.166' (ECDSA) to the list of known hosts.
Counting objects: 19, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (19/19), 1.49 KiB | 0 bytes/s, done.
Total 19 (delta 0), reused 0 (delta 0)
To git@github.com:moumumu/demo.git
 * [new branch]      main -> main
Branch main set up to track remote branch main from origin.

在这里插入图片描述
上传之后如果我们想要克隆代码,直接在github上进行克隆上传在本地就可以,很方便而且不担心代码丢失
在这里插入图片描述
连接github仓库并且上传本地文件
在这里插入图片描述
在创建的私有仓库push本地文件(首先要add再commit最后才能push)

[root@k8s4 511demo]# vim index.html
[root@k8s4 511demo]# ls
index.html  README.md
[root@k8s4 511demo]# git add index.html
[root@k8s4 511demo]# git commit -m "add index.html"
[main 131f8a0] add index.html
 1 file changed, 1 insertion(+)
 create mode 100644 index.html
[root@k8s4 511demo]# git push -uf origin main
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 283 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@192.168.1.14:root/511demo.git
   5b672e3..131f8a0  main -> main
Branch main set up to track remote branch main from origin.

在这里插入图片描述
下载安装Jenkins和jdk之后通过8080端口访问Jenkins,我们可以在下面的界面搜索我们想要安装的插件,并且在download中可以看到我们已经安装或者正在安装的插件
在这里插入图片描述
在这里插入图片描述
在gitlab上添加两台主机的公钥,并且在jenkins上添加私钥后进行连接,有的时候会出现 No ECDSA host key is known for 192.168.1.14错误,这是因为它会去检查ssh安全等级,我们只需要进行以下操作
在/etc/ssh/ssh_config中添加StrictHostKeyChecking no并且重启sshd服务就可以解决刚刚的问题
在这里插入图片描述

自动化创建(触发jenkins)

一定要记得做时间同步,每个主机都要做

Installed:
  chrony.x86_64 0:3.2-2.el7

Complete!
[root@docker1 ~]# vim /etc/chrony.conf
[root@docker1 ~]# systemctl restart chronyd
[root@docker1 ~]# chronyc sources -v
210 Number of sources = 5

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? time.cloudflare.com           0   7     0     -     +0ns[   +0ns] +/-    0ns
^? a88-157-128-22.static.cp>     0   7     0     -     +0ns[   +0ns] +/-    0ns
^- tick.ntp.infomaniak.ch        1   6    17    17  -1816us[-1375us] +/-   88ms
^- 139.199.215.251               2   6    35    16  -3875us[-3875us] +/-   25ms
^* 120.25.115.20                 2   6    27    17   -717us[ -275us] +/-   21ms
[root@docker1 ~]# date
Mon Nov 21 12:18:12 CST 2022
[root@docker1 ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
server ntp1.aliyun.com iburst

我们在jenkins上配置完成后,进行自动化创建,我们在修改文件并且push到gitlab上后,会触发jenkins然后对harbor进行自动化创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
jenkins中的大概配置如下
在这里插入图片描述
在这里插入图片描述
我们查看镜像也是一样能看到已经上传的镜像

[root@k8s5 ~]# docker images
REPOSITORY                         TAG       IMAGE ID       CREATED          SIZE
reg.westos.org/library/webserver   11        6080b65c6c68   10 minutes ago   142MB
reg.westos.org/library/webserver   latest    6080b65c6c68   10 minutes ago   142MB
webserver                          9         d7cacfb28022   42 minutes ago   142MB
webserver                          latest    d7cacfb28022   42 minutes ago   142MB
reg.westos.org/library/webserver   10        d7cacfb28022   42 minutes ago   142MB
nginx                              latest    88736fe82739   5 days ago       142MB

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

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

相关文章

集群渲染和渲染农场是什么意思?跟云渲染有什么关系?

嗨咯&#xff0c;大家好&#xff0c;今天后台有同学问集群渲染什么意思&#xff1f;集群渲染怎么做&#xff1f; 集群渲染&#xff08;cluster rendering&#xff09;指的是一组计算机通过通信协议连接在一起的计算机群&#xff0c;它们能够将工作负载从一个超载的计算机迁移到…

20款免费项目管理系统推荐

通过本篇文章您将了解&#xff1a;1、国内外20款最佳项目管理软件&#xff1b;2、使用免费项目管理工具可能面临的风险。一、项目管理软件的重要性 根据 Capterra 的数据研究&#xff0c;项目管理软件即将成为人们最需要的软件。一个项目无论大小&#xff0c;都需要一款高效且…

基于PHP+MySQL游戏视频网站的设计与实现

游戏是茶前饭后一个很好的娱乐方式,但是由于当下网络的高速发展,游戏的模式和种类也丰富多彩,这就导致很多时候人们不能够很快的对游戏上手。 为了改变这一情况很多视频娱乐类网站都出现了游戏视频,但是大多数时候这种网站并不是一个专业的游戏视频网站,跟多的时候是各类电影和…

SpringMVC学习

SpringMVCSpring MVC概述&#xff1a;**什么是Spring MVC &#xff1f;****什么是MVC?**第一个SpringMVC程序具体步骤&#xff1a;具体实现&#xff1a;第一个SpringMVC小程序的完善Spring MVC概述&#xff1a; 什么是Spring MVC &#xff1f; 他是基于MVC开发模式的框架&am…

数学建模英文论文的写作方法和步骤

目录 一、语言技巧 二、论文结构 1.标题写作 2.摘要写作时态​编辑 2.2摘要写作语态 2.3摘要写作人称 2.4摘要写作注意事项 3.问题重述 4. 符号说明​编辑 三线表 ​5.模型假设(以三到七个合理假设为宜 ) 6.模型分析及建立模型 7.模型求解 8.模型检验 9.模型优…

电视剧里的代码真能运行吗?

大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; 前几天&#xff0c;后台老有小伙伴留言“爱心代码”。这不是Crossin很早之前发过的内容嘛&#xff0c;怎么最近突然又被人翻出来了&#xff1f;后来才知道&#xff0c;原来是一部有关程序员的青春偶像剧《点燃我,温…

022_SSS_Novel View Synthesis with Diffusion Models

Novel View Synthesis with Diffusion Models 1. Introduction 本文利用diffusion模型&#xff0c;在给定参考图的条件下&#xff0c;生成指定pose的图像&#xff0c;作者称为3DiM。并且可以在给定一张特定视角的图的条件下&#xff0c;生成其他所有视角的图。 本文的主要贡…

Treap 原理详解和实战

一 点睛 Treap 指 Tree heap&#xff0c;又叫作树堆&#xff0c;同时满足二叉搜索树和堆两种性质。二叉搜索树满足中序有序性&#xff0c;输入序列不同&#xff0c;创建的二叉搜索树也不同&#xff0c;在最坏的情况下&#xff08;只有左子树或只有右子树&#xff09;会退化为…

CMCT-FA修饰阿霉素纳米脂质体/ADR-HAS-MS单抗Hab18偶联阿霉素人血清白蛋白微球的制备方法

瑞禧生物这里整理的内容是CMCT-FA修饰阿霉素纳米脂质体/ADR-HAS-MS单抗Hab18偶联阿霉素人血清白蛋白微球的相关制备方法&#xff0c;来学习&#xff01; MCT-FA修饰阿霉素纳米脂质体的研究&#xff1a; 利用1-乙基-3-(3-二甲基丙基)-碳二亚胺(EDC)介导 反应合成了叶酸偶联的羧甲…

LeetCode刷题---160. 相交链表(双指针-对撞指针)

文章目录一、编程题&#xff1a;160. 相交链表&#xff08;双指针-对撞指针&#xff09;1.题目描述2.示例1&#xff1a;3.示例2&#xff1a;4.示例3&#xff1a;5.提示&#xff1a;6.提示&#xff1a;二、解题思路1.思路2.复杂度分析&#xff1a;3.算法图解三、代码实现总结一、…

CSS——图标字体

为什么需要图标字体&#xff1f; 在网页中经常会有需要使用一些图标的地方&#xff0c;比如&#x1f6d2; &#xff0c; &#x1f464;&#xff0c;⏫等等&#xff0c;虽然我们可以通过图片来引入图标&#xff0c;但是图片本身比较大&#xff0c;页面刷新加载图片耗时不说&…

[附源码]java毕业设计小区疫情防控系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

知乎乱码、b站首页乱码、蓝奏云网盘打不开都是DNS惹的祸!修改设备的DNS

知乎乱码、b站首页乱码、蓝奏云网盘打不开等问题&#xff0c;常常是连接WiFi的时候会出现&#xff0c;一旦将手机切换为蜂窝、或者给电脑用蜂窝热点这个问题就能解决&#xff1a; 接下来教一下大家如何修改自己设备的DNS,从而 修复知乎乱码、b站首页乱码、蓝奏云网盘打不开 0.…

八环氧环己基乙基笼状聚倍半硅氧|八苯胺丙基poss

八环氧环己基乙基笼状聚倍半硅氧 外观&#xff1a;透明&#xff0c;淡黄色半固体状物 黏度&#xff1a;50000cps&#xff08;60℃&#xff09; 密度&#xff1a;1.25g/ml 分子量&#xff1a;1418 环氧当量&#xff1a;177 折射率&#xff1a;1.52 溶解性&#xff1a;溶于…

所见即所得的3D打印建模设计

3D打印机安装好后&#xff0c;需要的软件环境&#xff1a; 1. Cura 这类切片软件&#xff1b; 用于将STL等模型文件转换成3D打印的执行指令集&#xff0c;其实就是G-CODE的组合&#xff0c;有些还支持在线调试。 Simplify3D https://download.csdn.net/download/pocean2012…

深度剖析数据在内存中的存储

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C/C】 目录1.数据类型详细介绍1.1数据类型介绍1.2类型的基本归类2.整型在内存中的存储3.大小端字节序介绍及判断什么是大端小端&#x…

[附源码]Python计算机毕业设计茶叶产品质量安全可追溯系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

尚医通 (二十八) --------- 医院管理相关 (引入注册中心、远程调用)

目录一、医院管理医院管理效果展示二、注册中心与服务调用1. Nacos 概述2. 注册服务三、医院管理实现1. 医院列表2. service-cmn 模块提供接口3. 封装 Feign 服务调用4. 医院接口远程调用数据字典5. 添加数据字典显示接口6. 医院列表前端一、医院管理 目前我们把医院、科室和排…

函数栈帧的创建和销毁

“总有人间一两风&#xff0c; 填我十万八千梦” &#x1f351;作者&#xff1a;小赛毛 &#x1f495;文章初次日期&#xff1a;2022/11/21 目录 函数栈帧解决了什么问题&#xff1f; 什么是栈&#xff1f; 什么是寄存器&#xff1f; 函数栈帧的创建和销毁 预热知识准备&a…

Flink DataStream API 介绍

Flink DataStream API 介绍 StreamExecutionEnvironment #mermaid-svg-JKeWa22W2vWA4zBS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JKeWa22W2vWA4zBS .error-icon{fill:#552222;}#mermaid-svg-JKeWa22W2vWA4z…