带你解析Git的基础功能(一)

发布时间:2024年01月16日

前言

我们接下来要学习以下知识

  • ?标1: 掌握 Git 企业级应?,深刻理解Git操作过程与操作原理,理解?作区,暂存区,版本库的含义
    ?标2: 掌握 Git 版本管理,?由进?版本回退、撤销、修改等Git操作?式与背后操作原理。

一.什么是Git

Git 是一个开源的分布式版本控制系统,用于有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的。

版本控制器是一种用于跟踪文件和代码更改的软件。它允许您保存项目的不同版本,并在需要时回滚到以前的版本。版本控制器对于软件开发、文档管理和其他需要跟踪更改的项目非常有用。

Git 是目前最流行的版本控制系统之一。它具有以下优势:

分布式:Git 是分布式的,这意味着每个用户都拥有完整的代码库。这使得 Git 非常适合多人协作。
高效:Git 非常高效,可以快速处理大量文件的更改。
灵活:Git 非常灵活,可以用于各种类型的项目。

二.centos安装git

1.检查是否安装git

git --version

2.安装git的命令

sudo  yum install git -y

最终安装完成就是如下:
在这里插入图片描述

三.Git的相关操作

3.1初始化仓库

说白了初始化仓库就一条命令的事情。

git init

在这里插入图片描述
然后我们进入该目录下,查看git的目录结构
在这里插入图片描述

大家不要手动改里面的文件内容,不然就会破坏仓库,如果大家感兴趣,可以去探索者其中的奥秘。

3.2 配置 Git

当安装 Git 后?先要做的事情是设置你的 ??名称 和 e-mail 地址,这是?常重要的。
如何配置本地仓库呢?
其实就是两条命令的事情

git config user.name "你的名字"
git config user.config "你的邮箱"
git config -l 查看配置命令。

在这里插入图片描述
既然有增加配置文件的命令,就有删除配置文件的命令

 git config --unset user.email
 git config --unset user.name

在这里插入图片描述

我们还可以设置全局的配置,这代表每一个创建的仓库,我们都会应用这个设置。

git config --global user.name "你的名字"
git config --global user.config "你的邮箱"
git config -l

在这里插入图片描述
当然我们删除的时候,必须加全局参数的话。删除无效。
在这里插入图片描述

3.3 Git仓库的核心概念

知道如何配置操作之后,我们还需要了解Git代码仓库的管理流程,它由什么组成,它由
工作区,暂存区,版本库组成。这是它的核心概念,我现在来具体解释一下这个几个名词。
**工作区:**是您实际工作的地方,存放着您正在修改的文件。

**暂存区:**是 Git 用来存放您对工作区文件的修改的临时区域。?般存放在 .git ?录下的 index ?件(.git/index)中,我们把暂存区有时也叫作索引(index)。

**版本库:**是 Git 用来存放所有提交过的文件的永久存储区域。又名仓库,英文名 repository 。工作区有一个隐藏目录 .git ,它不算工作区,而是 Git 的版本库。这个版本库里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
下面我用一张图来表示这三个之间的关系。
在这里插入图片描述

知道了,我们git内部的结构之后,我们就可以想一下,我们日常提交代码的流程是怎么样?我用一张图来说明。
1.第一步我们新建文件,相当于往工作区新增了文件
2.第二步,我们使用 git add 命令将修改文件 添加到暂存区
3.第三步 git commit 命令将暂存区中的文件提交到版本库

在这里插入图片描述
我们如果想用Git管理文件的话,基本的流程就跟我画的流程图是一模一样的。

3.4 git的业务场景

(增加文件操作一)

1.创建新文件

touch file1 file2 file3

2.向暂存区增加文件

git add file1 file2  file3

3.向暂存区的文件增加到版本库

 git commit -m "增加三个文件操作"

git commit 命令执?成功后会告诉我们,3个?件被改动。
在这里插入图片描述

截??前为?,我们已经更够将代码直接提交?本地仓库了。我们可以使? git log 命令,来查看
在这里插入图片描述

(增加文件操作二)

学习到这?,我们已经清楚了如何向仓库中添加?件,并且对于?作区、暂存区、版本库也有了?定的认识。那么我们再展??种添加?件的场景,能加深对?作区、暂存区、版本库的理解。

[root@VM-16-7-centos gitcode]# touch file4
[root@VM-16-7-centos gitcode]# git add file4
[root@VM-16-7-centos gitcode]# touch file5
[root@VM-16-7-centos gitcode]# git commit -m "add file"
[master cd5a845] add file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file4

在这里插入图片描述

显然知识推送到一个文件到版本库中,因为我们一开始只把file4加入了暂存区。

修改文件的操作

这里要要跟大家补充一句,Git管理的从来不是文件,而是修改。为什么这么说呢?

我们进行一个小案例的操作
1.对一个文件进行修改

vim ReadMe

在这里插入图片描述

2.查看修改前和修改后的状态。
先查看我们代码仓库的状态

git status // 查看我是否对文件进行了操作

在这里插入图片描述
这里显示我对本地文件进行了操作,我们还有一个命令可以查看我们修改的内容是什么。

git diff ReadMe

在这里插入图片描述

3.最后提交文件
在这里插入图片描述

我们通过查看修改前和修改后的内容之后,就可以放心的提交到版本库当中了。

版本回退功能

我假设我们做了一个设计文档,我们已经改过很多版本了,结果我的老板突然告诉我想要最开始的第一版,这个时候怎么办呢?
在这里插入图片描述

我们就可以通过Git的一个命令来回退到合适的版本。
git reset --hard <commit_id> 将工作区和暂存区回退到指定的版本。
git revert <commit_id> 将指定的版本的修改恢复到工作区,但不影响暂存区。
git checkout <commit_id> 将工作区回退到指定的版本,包括暂存区。
用一张图来说明
在这里插入图片描述
接下来我们再来做一个案例
1.cat ReadMe
在这里插入图片描述
2.查看修改记录日志

git log --pretty=oneline

这里通过查找修改的日志,根据前面出现的类似于一字母和数组组合的索引,去回退对应的版本

在这里插入图片描述
3.回退到第三次修改的版本
我们这里选择的索引是第三次的修改的版本。
在这里插入图片描述

撤销操作

我们撤销操作跟退出操作不同,撤销是回到指定的上一步操作,我这里特地列了三种情况。
情况一:对于工作区的代码,还没有add=》只在工作区操作过
情况二:已经add,但没有commit =》工作区和暂存区操作了。
情况三:已经add,并且也commit了=》已经在工作区和暂存区和版本库里面操作了

针对这三种情况我们提供了不同的撤销方案。
在这里插入图片描述
我会举一些例子来说明这三种情况
例子一:对于工作区的代码,还没有add
在这里插入图片描述

例子二:已经add,但没有commit =》工作区和暂存区操作了。
1.使用 git add README.md 命令将 README.md 文件添加到暂存区。
2.使用 git status 命令查看工作区中的文件状态。
在这里插入图片描述

例子三:已经add,并且也commit了=》已经在工作区和暂存区和版本库里面操作了

在这里插入图片描述

删除操作

在git中删除操作也是修改操作,就比如你删除了一个文件,你觉的你删除了,但实际上并没有删除,我们来举一个例子,大家就明白了。

这里先说明一个删除的问题。
Git 如何处理已删除文件的问题。在 Git 2.0 之前,git add 默认会忽略已删除文件。这意味着,如果您使用 git add 添加一个已删除的文件,Git 将不会将该文件添加到索引中。

在 Git 2.0 中,git add 将默认包括已删除文件。这意味着,如果您使用 git add 添加一个已删除的文件,Git 将将该文件添加到索引中,并将其标记为已删除。

在您提供的示例中,您使用 git add 添加 file1,但 file1 已从您的工作目录中删除。Git 因此警告您,在 Git 2.0 中,git add 将默认包括已删除文件。
所以我们换一个操作。

 git rm file2 =》要删除的文件
 git commit -m "" =》提交到版本库

以上就是删除流程。
在这里插入图片描述
Git 的删除操作分为工作区删除、暂存区删除和版本库删除三个部分。工作区删除是指将文件从工作区中删除,暂存区删除是指将文件从暂存区中删除,版本库删除是指将文件从版本库中删除。

文章来源:https://blog.csdn.net/qq_45726327/article/details/135593333
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。