概述
工作树很好地展示了文件状态之间的转换。
对于Git而言,文件状态有四种。分别是
- Untracked :新增文件、删除文件
- Unmodified :commit
- Modified :修改文件
- Staged : add
处于unmodified的状态称为:干净的工作树(clean working tree)
一、Git 管理工作目录(Working Dirtory)Git使用来管理文件夹的,要使文件夹纳入Git版本控制系统,需要使用如下指令:
$ git init
在git下管理的文件夹中文件状态变化时,git能够检测到。使用指令
git stauts
可以查看当前状态。
二、Git的追踪态工作目录下的文件无外乎有两种状态:
- 已跟踪(tracked)
- 未跟踪(untracked)
新建一个文件,这个文件的状态是未追踪的。无法给出具体对文件进行了什么操作。
Git的暂存态有两种:
- 已暂存(staged)
- 未暂存(unstaged、untracked)
在工作目录下创建一个C文件,内容如下:
#include
int main()
{
printf("Hello!Welcome to my system!\n");
return 0;
}
如果使用下面语句
$ git add 文件名
那么文件的状态将会从未跟踪(untracked)变未暂存(unstaged、untracked)
add之后,这个文件变成了已追踪,可以分析出这个文件原来是新创建的。
这个过程是可逆的,在返回的指令中可以看到回到unstaged状态的办法。
$ git rm --cached ...
Git修改态有两种:
- 已修改(modified)
- 未修改(unmodified) 处于staged态的文件可以使用commit生成一个版本并有唯一的版本号:
$ git commit -m "改动的内容"
变化提交以后,文件的状态由: 已暂存(staged)->未修改(unmodified)
此时的状态为:
此时只有一个文件的info_provider.c的项目就被“快照”下来,成为一个版本。