Git环境

Git 可以分为本地(Local)和远程(Remote)两个环境,由于Git属于分布式的版本控制系统,所以开发者可以在离线环境下开发,等有网络信号时再将自己的代码推送(push)到远程或拉取(pull)其他开发者提交的代码到本地进行整合。

Git项目的三个阶段

在本地环境中将项目又分为工作区(working directory)、暂存区(staging area)和版本库(local rep)。当自己进行开发时会在工作区进行工作,当需要进入版本库前需要将文件代码加入到暂存区,没有问题则确认(commit)到版本库中,最后推送(push)到远程环境。在 Git 中若是有和其他开发者一起合作,则会需要处理不同分支之间的冲突和合并等问题。

这会让我们的 Git 项目拥有三个阶段:工作区暂存区以及版本库(项目下.git目录)。

  1. 工作区:工作区是对项目的某个版本独立提取出来的内容。 这些从 Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。就是你在电脑里能看到、进行操作的目录。
  2. 暂存区:英文叫 stage 或 index。暂存区是一个文件,保存了下次将要提交的文件列表信息,一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  3. 版本库:就是项目下的隐藏目录 .git,这个不算工作区,而是 Git 的版本库。Git 版本库是 Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

Git文件的三种状态 

因为Git项目的本地环境有三个区,所以项目中的Git文件对应有三种状态,项目中的文件可能处于其中之一:已修改(modified)、 已暂存(staged)和已提交(committed)。但是也有可能项目中的文件不属于这三种状态之一,这三种状态的文件只是为了和本地环境的三个阶段做一个对应,下面Git文件的三种分类才是一个完备的分类方法。

  1. 已修改:表示我们对文件进行了修改,但还没保存到本地版本库中。
  2. 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交到本地版本库的快照中。
  3. 已提交:表示数据已经安全地保存到了本地版本库中。
如果版本库(.git目录) 中保存着特定版本的文件,就属于 `已提交` 状态。 如果文件已修改并放入暂存区,就属于 `已暂存` 状态。 如果自上次检出后,作了修改但还没有添加到暂存区域,就是 `已修改` 状态。

Git文件的三种分类 

Git将项目中所有文件分为3类:已追踪的(Tracked)、被忽略的(Ignored)和未追踪的(Untracked)。

已追踪的文件是指已经在版本库中的文件,或者是已经暂存到索引中的文件。如果想将新的文件newfile添加到为已追踪(Tracked)的文件,执行git add newfile命令即可。

被忽略的文件必须在版本库中被明确申明为不可见或被忽略,即使它可能会在你的工作目录中出现。一个软件项目通常会有很多倍忽略的文件:普通被忽略的文件包含临时文件、个人笔记、编译器输出文件以及构建项目过程中自动生成的大多数文件等等。Git维护一个默认忽略文件列表,也可以配置版本库来识别其它文件,比如可以通过.gitignore文件来继续配置。

未追踪的文件是指那些不在前两类中的文件。Git把工作目录下的所有文件当成一个集合,减去已追踪的文件和被忽略的文件,剩余部分最为未被追踪的文件(Untracked)。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐