分布式版本管理系统---->Git(Linux---centos(保姆式)讲解1)

2023-12-05 15:15

本文主要是介绍分布式版本管理系统---->Git(Linux---centos(保姆式)讲解1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录:

        1:什么是Git以及作用

        2.Git的基本操作过程(创建git仓库,配置仓库的配置)

        3.git的工作区,暂存区,版本库的关系

        4.将文件添加到版本库:git add 与git commit -m命令

        5.git log查看日志的引入

        6.查看.git文件中的内容

        7.修改文件内容查看 git diff 与git diff HEAD

        8.版本回退的概念引入以及命令

        9.撤销修改的引入与相关指令操作

        10.git rm 删除版本库文件


前言:

        本文章是讲解Git的相关操作的,深刻理解Git的操作过程与操作,掌握Git企业级的应用,从0开始讲解Git。

文章正式开始:

1:什么是Git 以及作用

        首先在讲解什么是Git之前我们先来聊一聊关于我们工作中的一个场景:

        我们日常在工作的时候我们的老板可能让我们写一个需求文档(文档1),而当我们写完文档1之后我们可能就将这个文档1交给老板,可是我们的老板对我们的文档1不是怎么很满意觉得我们的文档缺了一点什么,于是让我们将这个文档拿下去进行修改,于是我们就拿着文件去进行修改了,此时我们将文档2给修改出来了,又将这个文档交给老板,老板可能觉得还是对这个文件不是很满意,于是又让我们去修改文档.......,假设最终我们修改到了第10版文档,可是老板觉得我们的第5份文档是最满足他的需求的,于是我们就去寻找文档5,如果我们之前没保存文档5那我们的内心是非常崩溃的,因为我们已经修改文档很多次了并不知道文档5是什么内容了,但是我们如果修改的并不是同一份文件而是每次修改的时候都是新建一个副本文档进行修改,那么我们就开开心心的拿着第5份文档交给老板。

                从上面的工作场景不难发现我们修改文件的时候由两种方式一种是在同一份文件进行多次修改,另外一种情况就是对要修改文件的副本文件进行修改,显然第二种情况是比较好的修改方式,因为这种修改方式可以让我们找到我们每次修改文件的版本。

而为了对我们的文件进行管理于是就有了git这个主流的版本管理控制器之一。

所以我们可以将Git简单的理解为:对文件进行管理的版本控制系统,能够帮我们知道这个文件的各个版本以及里面的内容。这里的文件可以是任何格式的文件,而对于开发者来说git最大的作用就是用来管理我们的源代码的。

2:Git的基本操作(centos下的操作)

        1:首先在我们的centos系统下我们需要安装Git

        命令:

root用户:yum install -y git
普通用户:sudo  yum install -y git

      创建git仓库

      首先要注意的是我们的创建仓库一定是在一个目录下进行创建的

    

        创建一个git仓库:git init

        


        配置仓库

   

git config user.name "xxxxx" git config user.email "xxxxx" 

         

首先在配置名字和邮箱之前我们可以查看一下git有无配置这两个,如果配置了我们就可以不进行配置,一般而言如果我们是刚开始建立git仓库都需要进行配置。

查看git的配置项指令: git config -l

 

所以我们来配置name与email

        

  我们还可以加一个 --global的选项来进行配置这两个如:

        git config --global user.name "    "

        git config --global user.email "    "

是否加 --global看自己的意愿。


配置项的删除

        假设我们的配置项不小心配置错了或者我们需要对一个git仓库的配置项进行修改那么我们就可以使用以下的指令:

        git config  --unset user.name(user.email)  对于局部配置

        git config --global  --unset   user.name(user.email)  对于全局的配置

        


3:git的三大区域介绍

        其实我们的git真正管理的是位于版本库中的文件,但是在git仓库目录的文件还不能被git进行管理,而需将他添加到git的版本库中才能进行管理。

我们通过上面的图形来介绍几个概念

        工作区:.git文件的同级路径下的区域,简单的理解就是我们在写代码的区域。

        暂存区:属于.git版本库中一个非常重要的内容,我们将工作区的内容通过add指令之后文件就会被放在该区域。

       git的版本库:就是我们的.git目录。

        HEAD:本质是一个指针用来指向我们当前是在那个分支下。

        master:本质里面存的是commit id

        object对象库:当我们对工作区进行修改的时候,我们修改的内容会被存储在object对象库中。

        

.git文件中就有上述的一些区域。


4.git add  与git commit -m 

        在上面我们已经对于git的区域有一定的了解了,那么我们也就可以引入两个指令了。

        git add  .  or git add filename

        首先这个命令是针对于工作区与暂存区进行的命令。

        意义是:将我们工作区修改的内容添加到暂存区。

        “修改“:并不是局限于对文件的修改还包括删除和创建文件

        git add . 与git add filename的区别

        add .  :表示将工作区所有的修改添加到暂存区中。

        add filename: 将该文件的修改添加到暂存区中。

        如我们先使用上述命令来进行相关的操作:

        git status

        这个指令可以用来查看我们当前三个工作区的状态

         


        git commit -m  ” xxxx“    ”“分号里面建议认真的写本次做了什么操作

        git status 查看三个区域的状态 


5:git log  查看日志的指令

        这个指令可以用来查看我们提交到版本库中的日志

还可以使用 简单漂亮的打印指令

git log --pretty=oneline


6. .git文件里面的内容介绍

        .git其实是树目录里面有许多文件或目录,我们在linux下使用tree命令来查看

        index:也就是我们所说的暂存区,里面存着的是add 修改的内容

        HEAD:也就是我们所说的指针,里面存着的是我们指向的分支

        object:称为对象库,里面存着的是我们我们每次对工作区进行修改的内容的索引

        master:其实就是我们最新一次的commit id,我们可以来看看。


7.修改内容的查看

        我们知道git是版本控制管理系统,所以git最重要管理的是修改并非是文件

        我们先引入几个场景

        1.只是修改了文件的内容,无add。

        这种情况下我们git如果想要知道本次文件的内容上次该文件内容的差异我们呢一个如何进行查看呢?? 

       当然这种差异我们可能可以通过我们的记忆知道两个文件的区别,可是当我们时间一久那我们还会记住吗??

所以我们的git提供了一个指令用来显示工作区与暂存区的区别

        git diff filename

我们通过图片来进行演示。

        场景2:修改的文件已经add了,想要查看文件在暂存区与版本库中的差别

        git diff HEAD -- filename

        此时暂存区与版本库的差异就出来了。


8.版本回退

        我们知道我们的git有一个重要的功能就是对文件进行版本管理,所以版本回退是git的一个非常重要的知识。

        版本回退经常用于,我们假如已经开发了一段时间了,可是我们对我们的开发结果不是怎么很想要了,并且想要在上一个版本下重新进行开发,那么这时我们的版本回退的操作就非常需要了。

    版本回退语法:git reset  [--soft] [--mixed] [--hard]  commitid  [HEAD]

        commitid:就是我们用git log打印时commit 后面的那些数字,当然commitid 也可以是HEAD,表示的是当前版本

        回退的本质:将版本库的内容进行回退,其他区域回不回退需要看选项回退。 

        我们结合图来进行解释具体的选项的意思。

--soft:只回退版本库中的内容。

--mixed:版本库和暂存区都会回退,也是git reset的默认选项。

--hard:将所有区域的内容都进行回退,要慎用。


        此时假设我们已经开发了一次,备注了“coding x function”

        且文件中的内容为:

        我们不想要这一次的结果了,我们想回到上一个版本。

        此时就可以使用git提供的版本回退功能了。

此时的test的内容

这样就将工作区,暂存区,版本库中的内容全部回归到上一个版本了。

        从这里我们也能发现git的版本回退是非常快速的,这是因为回退其实就是将HEAD指针的master修改就行,所以修改速度非常快。


     git reflog 可以查看我们所有的commit id,这样导致了我们可以随便回归到那个版本。

        但是不建议随便乱回退,可能commit id会被冲掉。

        我们通过图来讲解git版本回退时本质的内容

        

        

9.撤销修改文件

         这里的撤销修改指的是我们在对一个文件进行操作的时候所对应的操作,也就是觉得我们本次开发的代码非常不好,想回到开始时候的状态。

        1:对工作区的代码的撤销,无add

                方法1:自己手动修改。这种方法太挫了,这里就不进行演示了。

                方法2:git checkout -- [filename],回到最近一次的add状态与commit状态。

            

                


        2.已经进行了 add 操作,但没有commit操作

        

        方法:git reset HEAD filename +git checkout -- [filename] 两步走

 


        3.已经add,已经commit了

        这时候的撤销我们只能依靠我们的git reset --hard/mixed/soft  commitid 了,版本回退。

        这里就不给大家进行演示了。


        10.删除版本库中的文件

        命令:git rm filename

                我们通过具体的实例来讲解git rm

        我们先创建file1,file2,file3,然后将他们删除。

        

 

        此时使用git status来进行查看内容

        我们在只需 git commit 操作就能将文件给彻底删除了。

        总结使用git rm删除版本库中的文件的两步: git rm filename +git commit -m " xxx"


        如何恢复我们在工作区所不小心删除的文件呢?

        这里就可以使用撤销操作了,因为删除本质上也是修改。

        


        本篇文章完!!!!感谢大家的耐心观看。

还有的内容将会在后面的文章中进行介绍,如果你觉得对你有用的话可以给个赞。

这篇关于分布式版本管理系统---->Git(Linux---centos(保姆式)讲解1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/458086

相关文章

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java