系统运维(Git篇)

news/2025/2/14 7:31:16/

Git基础

Git
Git是一种分布式版本控制系统,可以帮助我们管理代码的版本和变更。通过学习Git,我们可以更好地理解版本控制的原理和应用,同时也可以掌握Git的使用和管理技巧。
Docker
Docker是一种容器化平台,可以将应用程序及其依赖项打包到一个可移植的容器中,以便在任何地方运行。Docker的出现,使得应用程序的部署和管理变得更加简单和高效。通过学习Docker,我们可以更好地理解容器化技术的原理和应用,同时也可以掌握Docker的使用和管理技巧。
Kubernetes
Kubernetes是一种容器编排工具,可以自动化地部署、扩展和管理容器化应用程序。Kubernetes的出现,使得容器化应用程序的管理变得更加简单和高效。通过学习Kubernetes,我们可以更好地理解容器编排技术的原理和应用,同时也可以掌握Kubernetes的使用和管理技巧。
Linux
Linux是一种开源的操作系统,广泛应用于服务器和嵌入式设备等领域。通过学习Linux,我们可以更好地理解操作系统的原理和应用,同时也可以掌握Linux的使用和管理技巧。
Python
Python是一种高级编程语言,具有简单易学、功能强大、可扩展性好等特点。通过学习Python,我们可以更好地理解编程语言的原理和应用,同时也可以掌握Python的使用和开发技巧。

Git的由来

img

​ Git是由Linus Torvalds创建的一个分布式版本控制系统,最初是为管理Linux内核开发而创建。当时,Linux内核使用BitKeeper作为版本控制工具,但是BitKeeper提出了新的许可协议,在社区中引起了争议,这导致了Linus Torvalds的不满和反感。

​ 因此,Linus决定创建自己的版本控制工具,他决定创建一个简单、高效、分布式的工具。他决定以自己的名字来命名它,最终成为了Git。

​ Git于2005年发布,并且迅速获得了广泛的认可和使用。现在,Git已经成为了全球范围内的一个重要的版本控制系统,被广泛应用于个人和企业软件开发中。

​ 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。它通常被用于跟踪软件开发中的源代码变化,但它也可以用于其他类型的文件,如文本文件、配置文件等。版本控制系统可以让多个人协同工作,同时对同一个文件进行编辑,并且可以方便地回滚到之前的版本,以避免误操作等问题。其中最常用的版本控制系统之一是 Git。

Git灵魂5问?

  1. 什么是Git? 它具有哪些特性?
    Git是源代码管理工具,用于追踪代码的修改和版本控制。 Git的特性包括:速度快、可分布式、支持非线性开发、保留历史记录并允许回退、支持多个并行开发分支等。

  2. Git中什么是HEAD?
    HEAD是指向当前本地分支中最新提交的指针。它是指向当前检出的分支的别名,并且是Git中的重要标记。在使用reset和checkout命令等操作时常常需要用到HEAD。

  3. 如何创建分支,并将分支与主分支合并?
    要在Git中创建分支,可以使用git branch命令并指定新分支的名称,例如:$ git branch mynewbranch。然后,可以使用Git checkout命令将工作目录切换到新分支,例如:$ git checkout mynewbranch。要将分支与主分支合并,可以使用git merge命令,并指定要合并的分支名称,例如:$ git merge mynewbranch

  4. 如何撤销上一次提交?
    可以使用git reset命令来撤消上一次提交,并将代码回滚到上一个提交的状态。例如:$ git reset HEAD~1。HEAD~1表示回滚到上一个提交,如果要回滚到更早的提交可以将数字1替换为所需提交的数量。

  5. Git中如何解决代码合并冲突?
    当合并分支时,如果两个分支都修改了同一行代码,则会发生代码合并冲突。Git会在合并时提示冲突,此时需要手动修改代码并解决冲突。可以使用git mergetool命令调用合并工具来解决冲突,或者使用编辑器进行手动编辑。编辑完成后,可以使用git add命令将修改后的文件添加到暂存区,然后使用git commit命令提交修改并完成合并。

基础知识

​ Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

img

  • Workspace:工作区,就是你平时存放项目代码的地方

  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

  1. Git的三个阶段

在使用Git进行版本控制时,每个文件都处于三个阶段中的一个:

  • 已修改:表示已经对文件进行了修改,但还没有提交到版本库中;
  • 已暂存:表示已经使用git add命令将修改的内容提交到暂存区;
  • 已提交:表示已经使用git commit命令将修改的内容提交到本地Git仓库。
  1. Git的基本操作
    命令解释
    git init初始化一个新的Git仓库
    git add 将文件添加到暂存区
    git commit -m “commit message”将暂存区的内容提交到本地Git仓库
    git status查看Git仓库的状态
    git log查看文件的修改历史
    git checkout 撤销已修改但未提交的内容
    git reset --hard <commit -id>撤销已提交的内容
    git config -l查看配置
    git config --global --list查看当前用户信息
    git clone 克隆一个项目和它的整个代码历史(版本信息)
    git push 将本地分支推送到远程分支
    git fetch 将远程分支的最新代码拉取到本地,但是并不会自动合并到本地分支
  2. Git分支管理

分支是Git最重要的功能之一,它可以让开发者在不影响主分支的情况下,安全地进行新功能的开发和测试。常用的分支操作包括:

命令解释
git branch 创建新分支
git checkout 切换分支
git merge 合并分支
git branch -d 删除分支
git branch列出本地分支
  1. Git远程操作

Git可以通过远程仓库实现不同开发者之间的协作,以及备份和恢复等功能。常用的远程操作包括:

  • 将本地仓库连接到远程仓库:git remote add origin <remote-url>

  • 从远程仓库拉取代码:git pull

  • 将本地代码推送到远程仓库:git push

  • 查看远程分支:git branch -r

  1. Git忽略文件

​ Git可以通过在项目根目录下创建.gitignore文件来忽略一些文件或文件夹。在.gitignore文件中指定的文件或文件夹将不会被Git跟踪,也不会出现在版本控制系统中。

.gitignore文件的语法如下:

# 这是注释
*.txt  # 忽略所有txt文件
/foo  # 忽略根目录下的foo文件夹
bar/  # 忽略根目录下所有名为bar的文件或文件夹
!/bar/baz.txt  # 但是保留bar/baz.txt这个文件

​ 在.gitignore文件中,你可以使用通配符、斜杠(/)和感叹号(!)等符号来指定要忽略或保留的文件和目录。例如,通配符*.txt表示忽略所有扩展名为.txt的文件。斜杠/表示目录分隔符。感叹号!表示取消忽略。

​ 需要注意的是,.gitignore文件只对尚未被Git跟踪的文件或目录生效,如果一个文件或目录已经被Git跟踪了,.gitignore文件对它们就不再生效。如果你想取消跟踪已经被Git跟踪的文件,需要使用git rm --cached命令,同时在.gitignore文件中添加对应项。

  1. Git分支

​ Git 分支是为了在软件开发中更好地进行代码管理而设计的一种功能。分支实际上是指向提交对象(commits)的可变指针。 在大多数软件开发工具中,分支是不同于主目录的开发专用的相对独立区域。

​ Git 中的分支类似于一个指向当前提交对象(commit)的指针。Git 中的默认分支名为 master,但你也可以创建自己的分支。在每个新的分支上,你可以更改代码并提交,而这些提交不会影响主分支上的代码。

​ 分支的主要目的是让你可以在你想要试验一些新功能的同时不会对主分支产生影响。一旦新的功能测试通过,你可以将该分支与主分支合并,然后把该分支删除。

​ master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

​ 如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!

​ 在 Git 中,分支是极其轻量级的,创建和删除它们几乎是瞬间完成的操作。因此,在 Git 中,分支的使用被广泛认为是一种好习惯。

在这里插入图片描述

更多的 Git 相关知识可以参考官方文档 https://git-scm.com/doc 或者 Git 的在线文档教程 https://try.github.io/ 。


http://www.ppmy.cn/news/62006.html

相关文章

Go语言中的流程控制语句

目录 流程控制语句 if语句 ifelse语句 switch语句 for循环 break语句 continue语句 goto语句 流程控制语句 if语句 在Go语言中&#xff0c;可以在if后面加上一段执行语句&#xff0c;执行语句也可以用作对if条件的判断。它的语法格式为&#xff1a; if a : conditio…

随笔-听说你年入百万了

两个月前接到老代的电话&#xff0c;说4月30号结婚&#xff0c;预约一下时间。半个月前接到小付的电话&#xff0c;说5月1号结婚&#xff0c;行吧&#xff0c;值当回趟老家了。 抢票还算顺利&#xff0c;转了一趟车&#xff0c;29号下午到了老家&#xff0c;想着收拾一下&…

体验 gpt4free

体验 gpt4free 什么是 gpt4free效果演示安装 ffmpeg启动 gpt4free访问 gpt4free gui其他 什么是 gpt4free GPT4Free 是一个由 xtekky 创建的基于 OpenAI GPT-4 和 GPT-3.5 的 API。它可以向用户提供类似于 OpenAI GPT-3 的功能&#xff0c;如文本生成、问答、翻译等。 GPT4Fre…

【电源专题】案例:拆一个早期用的万能充看看内部状况

说到万能充,可能存在80/90后的记忆里。以前手机都可以更换电池的,所有往往都是买两块,一块在手机内部使用,另一块在万能充充电。 万能充的外观也是大同小异的,从网上找了一些图片: 这东西现在日常生活已经都看不到了,关键因素之一应该是现在的手机电池都是不可拆…

前端学习笔记:CSS中浮动的原理,定位

这是本人学习的总结&#xff0c;主要学习资料如下 马士兵教育 目录 1、float1.1、float设计的初衷1.2、浮动的原理&#xff0c;类似两个图层1.3、浮动的原理&#xff0c;两个图层的特殊性1.4、消除浮动的影响 2、定位2.1、相对定位&#xff08;relative&#xff09;2.2、绝对定…

SQL Server实现group_concat功能

mysql group_concat函数 一、group_concat函数的功能   将group by产生的同一个分组中的值连接起来&#xff0c;返回一个字符串结果。 group_concat函数首先根据group by指定的列进行分组&#xff0c;将同一组的列显示出来&#xff0c;并且用分隔符分隔。由函数参数&#xf…

lombok常用的注解及使用方法

lombok是⼀种简化源码提⾼编程效率的⼯具&#xff0c;⽤于⽣成常⽤的代码。 如何使用lombok 引⼊依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</ver…

gorm记一次“mysql写入 Error 1366 (HY000): Incorrect string value”错误

记一次“mysql写入 Error 1366 (HY000): Incorrect string value”错误 环境gogormdockermysql 写入数据库的内容为中文时提示Error 1366 (HY000): Incorrect string value: \xE6\x9D\x8E\xE7\x99\xBD for column nickName at row 1&#xff0c;原因是创建表时没有指定字符集…