Git系列-开篇

Posted Chris_166

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git系列-开篇相关的知识,希望对你有一定的参考价值。

关于Git的介绍,这里就不多说了,可以网上搜索或者参见Git入门(一)——没有版本控制意识的程序员不是一个好的程序员_Chris_166的博客-CSDN博客

目录

1. 项目的四个工作区域

2. 文件的四个状态


本系列主要围绕Git官网文档(Git - Documentation)介绍一些工作中常用的Git知识

1. 项目的四个工作区域

Git项目拥有如上4个工作区域(官网上没有Remote,称之为“Git项目拥有的3个阶段”)

1. WorkSpace(工作区):是对项目的某个版本独立提取出来的内容,即本地磁盘中存放项目代码的地方;
2. Index/Stage(暂存区):它只是一个文件,保存了本次改动或者说是下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”;
3. Repository(Git 仓库目录):是 Git 用来保存项目的元数据和对象数据库的地方。注意上面的Stage存放的提交的文件列表的信息,这里是保存的修改的具体内容
4. Remote(远程仓库):托管代码的服务器

 注意上图中的工作区域转换的条件,这些条件已经把转换关系描述的很清楚了,这些条件也就是我们工作中敲的git命令

2. 文件的四个状态

上面第1章介绍的是Git项目的工作区域,这里介绍的是Git项目WorkSpace区域下的文件状态。

工作区下的每一个文件都不外乎这两种状态:已跟踪(tracked) 或 未跟踪(untracked)
上图中的tracked包括Unmodified、Modified、Staged。初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态,因为 Git 刚刚检出了它们, 而你尚未编辑过它们

下面再对每个状态做下简介:

文件状态说明
Untracked未跟踪。此文件在文件夹中, 但并没有加入到git库, 不参与版本控制
Unmodified未修改。此文件已经入库,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件如果被修改, 则变为Modified; 如果使用git rm移出版本库, 则成为Untracked文件
Modified已修改。仅仅是对这个文件进行了修改, 并没有进行其他的操作。 这种类型的文件通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
Staged暂存状态。执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态,执行git reset HEAD filename取消暂存, 文件状态为Modified

下图是网上对于文件状态转换图,生动形象,可以对上面的官网图进行补充下。

 

 ---------------

待续:git实操验证

以上是关于Git系列-开篇的主要内容,如果未能解决你的问题,请参考以下文章

Git系列-开篇

Git如何检出指定目录或文件

git 检出项目部分目录(稀疏检出)

Git检出指定目录实践

Git:将子模块文件检出到单个目录中

Git检出指定目录实践