第四章: Git 下文件状态

概述

工作树很好地展示了文件状态之间的转换。

第四章: Git 下文件状态_第1张图片

对于Git而言,文件状态有四种。分别是

  • Untracked :新增文件、删除文件
  • Unmodified :commit
  • Modified :修改文件
  • Staged : add

处于unmodified的状态称为:干净的工作树(clean working tree)

一、Git 管理工作目录(Working Dirtory)

Git使用来管理文件夹的,要使文件夹纳入Git版本控制系统,需要使用如下指令:

$ git init

git_init

在git下管理的文件夹中文件状态变化时,git能够检测到。使用指令

git stauts

可以查看当前状态。

二、Git的追踪态

工作目录下的文件无外乎有两种状态:

  • 已跟踪(tracked)
  • 未跟踪(untracked)

新建一个文件,这个文件的状态是未追踪的。无法给出具体对文件进行了什么操作。
第四章: Git 下文件状态_第2张图片

三、Git的暂存态

Git的暂存态有两种:

  • 已暂存(staged)
  • 未暂存(unstaged、untracked)

在工作目录下创建一个C文件,内容如下:

#include 

int main()
{
	printf("Hello!Welcome to my system!\n");
	
	return 0;
}

如果使用下面语句

$ git add 文件名

那么文件的状态将会从未跟踪(untracked)变未暂存(unstaged、untracked)

第四章: Git 下文件状态_第3张图片

add之后,这个文件变成了已追踪,可以分析出这个文件原来是新创建的。

这个过程是可逆的,在返回的指令中可以看到回到unstaged状态的办法。

$ git rm --cached ...

第四章: Git 下文件状态_第4张图片

三、修改态

Git修改态有两种:

  • 已修改(modified)
  • 未修改(unmodified)
    处于staged态的文件可以使用commit生成一个版本并有唯一的版本号:
$ git commit -m "改动的内容"

变化提交以后,文件的状态由:
已暂存(staged)->未修改(unmodified)

git_commit.png

此时的状态为:
git_commited_status.png

此时只有一个文件的info_provider.c的项目就被“快照”下来,成为一个版本。

你可能感兴趣的:(版本管理工具)