第四章: Git 下文件状态

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39258979/article/details/81565246

概述

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

工作树

对于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_status说明.png

三、Git的暂存态

Git的暂存态有两种:
- 已暂存(staged)
- 未暂存(unstaged、untracked)

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

#include <stdio.h>

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

    return 0;
}

如果使用下面语句

$ git add 文件名

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

这里写图片描述

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

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

$ git rm --cached <file>...

git_unstaged.png

三、修改态

Git修改态有两种:
- 已修改(modified)
- 未修改(unmodified)
处于staged态的文件可以使用commit生成一个版本并有唯一的版本号:

$ git commit -m "改动的内容"

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

git_commit.png

此时的状态为:
git_commited_status.png

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

猜你喜欢

转载自blog.csdn.net/weixin_39258979/article/details/81565246