Git三个区域

git
1.1k 词
Git三个区域

Git三个区域#

Git使用时:

工作区:实际开发时操作的文件夹

暂存区 .git/index :保存之前的 准备区域 (暂存改动过的文件)

版本库 .git/objects :提交并保存暂存区中的内容,产生一个版本快照

git基础命令
命令 作用
git status 查看当前工作目录和暂存区的文件状态
git add 文件名1 文件名2 暂存指定文件
git add . 暂存所有改动的文件
git commit -m '注释说明' 提交并保存,产生版本快照

暂存提交#

接下来我们实践一下,将当前文件夹下新增的所有文件,暂存并提交

首先,看一下文件状态

将这些文件暂存

ps:用 git ls-files 命令也可以查看暂存区的内容

提交并保存,产生版本快照

提交后查看状态,暂存区提交完毕已经清空(红色的是暂存后再修改和新增的内容,需要下一次再暂存提交,不是报错)

Git文件状态#

Git文件的2种状态:

  • 未跟踪:新文件,从未被Git管理过
  • 已跟踪:Git已经知道和管理的文件
文件状态 概念 场景
未跟踪(U) 从未被Git管理过 新文件
新添加(A) 第一次被Git暂存 之前版本记录无此文件
未修改('') 三个区域统一 提交保存后
已修改(M) 工作区内容变化 修改了内容产生

使用:修改文件,暂存,提交保存记录,如此反复

实测#

需求:使用 git status -s 查看文件状态,并最终提交

先用 git status 查看一下

再用 git status -s 查看

有新的文件是因为查看之前又保存了新的图片,忽略它

对于修改过的文件,状态显示为 M ,代表已修改(modified)。这意味着文件已被Git跟踪,并且在上次提交之后有了修改,但尚未暂存。

而对于新添加的文件,状态显示为 ?? ,代表未跟踪的文件(untracked),即尚未被 Git 跟踪或添加到版本控制中的文件

这些文件是新创建的文件或者在当前分支中尚未添加到版本库的文件

之后将这些改动暂存

暂存后就会发现,之前提交过再修改的html状态为 M

而新增的图片暂存后状态为 A

暂存区使用#

暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦

暂存区=>覆盖=>工作区,命令: git restore 目标文件 (注意:完全确认覆盖时使用)

从暂存区移除文件,命令 git rm --catched 目标文件

补充:查看提交历史命令: git log [--online](可选)

后续可以根据记录恢复工作区代码