Git系列-开篇
Posted Chris_166
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git系列-开篇相关的知识,希望对你有一定的参考价值。
关于Git的介绍,这里就不多说了,可以网上搜索或者参见Git入门(一)——没有版本控制意识的程序员不是一个好的程序员_Chris_166的博客-CSDN博客
目录
本系列主要围绕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系列-开篇的主要内容,如果未能解决你的问题,请参考以下文章