05.基本概念

97 阅读4分钟

基本概念

1.工作区域

总览

1755539394024.png 1755539328676.png

1769699323051.png

总览

  • 工作区:就是你要进行版本控制的目录
  • 暂存区:临时存储
  • 本地库:历史版本

详解暂存区

介绍

暂存区,顾名思义是用于暂存文件的,即临时存储,在Git中也被称为索引。Git和其他版本控制系统(如SVN)的一个不同之处就是,Git有暂存区的概念,暂存区是Git的核心功能之一

为什么需要

Git可以记录每个文件的所有版本,随着开发的持续推进,同一个文件会产生非常多不同的版本,这些版本就代表了该文件的某一个指定状态。一个文件会变更很多内容(新增、删除、修改等)。那么,到底变更多少内容才会生成一次版本信息呢?

另外,有时候一个版本中记录了多个文件的变更,我们需要将这些文件的多个变更记录到同一个版本中,以便于以后回退到这个版本时,所有文件中的内容都能回退到这个版本的状态

案例

我们可以使用add命令将需要生成版本的文件添加到暂存区中,暂存区中记录该文件的当前状态。另外,暂存区也可以存储多个文件。使用commit命令将当前暂存区的所有内容生成一次版本快照

一个版本记录多次内容变更的示意图如下图所示:

asdacc213123111.jpg

注意:在上图中,①和②也可以在工作空间先完成两步操作,然后使用add命令将两步操作都添加到暂存区

一个版本记录多个文件的示意图如下图所示:

FigureP342109.jpg

2.文件状态

介绍

对Git的工作空间进行不同操作会将其处于不同的状态,通过一些状态信息我们可以很好地判断Git进行了什么操作以及接下来应该进行什么操作

总览

1755539512691.png

1755539478340.png

nothing to commit(无需采取任何行动)

nothing to commit表示当前工作空间没有还未提交的操作,属于一个干净的工作空间(工作空间的所有文件均已提交)

# 初始化仓库
git init
# 查看当前工作空间的状态
git status

asdascc.jpg

Untracked files(未跟踪的文件)

Untracked files表示当前工作空间有文件处于从未被追踪过的状态,需要使用add命令添加(工作空间中含有没有执行add的文件)

# 创建一个新文件
echo "111" >>> aaa.txt
# 查看当前工作空间状态
git status

asdasdascc.jpg

Changes to be committed(需要提交的更改)

Changes to be committed表示更改的操作已经被追踪到了,但操作还未被提交(修改的文件执行了add操作,但是还未提交)

# 将当前目录所有文件和文件夹添加到暂存区
git add .
# 查看当前工作空间状态
git status

asdasdaccc.jpg

当文件被提交后,工作空间重新回到nothing to commit状态,命令如下:

# 提交
git commit -m "第一次提交" ./
# 查看当前工作空间状态
git status

FigureP39cmA2909.jpg

Changes not staged for commit(未提交的更改)

Changes not staged for commit表示当前工作目录中有文件被修改了,但是这个修改操作还未被Git追踪到。因此,我们需要使用add命令来追踪(已经执行过add的文件被修改了但还未执行add操作)

Changes not staged for commit与Untracked files不同的是:前者代表文件之前已经被Git追踪过,只是本次的操作还没有被Git追踪,可以使用commit直接提交;后者则代表文件从来没有被Git追踪,必须先使用add来追踪

再次修改工作空间的文件,命令如下:

# 编辑文件
ehco "222" >>> aaa.txt
# 查看当前工作空间状态
git status

FigureP39PPPP2910.jpg

当执行add命令后,工作空间再次回到Changes to be committed状态,表示文件已经被追踪(添加到暂存区),但是还未提交。命令如下:

# 添加到暂存区
git add ./
# 查看当前工作空间状态
git status

FigureCP403060.jpg

当修改被提交后,工作空间再次回到nothing to commit状态,表示当前工作空间所有的操作均已提交。示例代码如下:

# 提价
git commit -m "222" ./
# 查看当前工作空间状态
git status

FigureP403061.jpg