Git工作区,暂存区和版本区

原创 2016年08月28日 19:23:17

Git工作区,暂存区和版本区

 

基本概念

 

这里出现了三个名词:工作区,暂存区,版本库.

 

工作区:你工作的地方,你在哪里工作呢?肯定是你的电脑上,那么工作区就是你在电脑里能看到的目录.

暂存区:英文名叫stage或者index.听名字就知道是暂时的,不是永久的,数据会经常的发生变化,这个区域一般存放在’git目录’下的index文件(.git/index),我们把暂存区有时候也叫做索引(index).

版本库:工作区中有一个隐藏目录.git,这个不算工作区,而是Git的版本库.

 

简单说一下这个图,图中的左侧为工作区,右侧为版本库.在版本库中标记为’index’的区域就是暂存区(stage或者index),标记为’master’的是master分支所代表的目录树.

 

图中我们可以看出此时”HEAD”实际是指向master分支的一个’游标’.所以图示的命令中出现HEAD的地方可以用master来替换.


图中objects标识的区域为Git的对象库,实际位于’.git/object’目录下,里面包含了创建的各种对象以及内容.

 

当对工作区修改(或新增)的文件执行”git add”命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中.

 

当执行提交操作(git commit),暂存区的目录树写到版本库(对象库),master分支会做相应的更新.master指向的目录树就是提交暂存区的目录树.

 

当执行’git reset HEAD’命令时,暂存区的目录树会被重写,master分支指向的目录树所替换,但是工作区不受影响.

 

当执行’git rm --cached <file>’命令时,会直接从暂存区删除文件,工作区则不会做出改变.

 

当执行’git checkout HEAD’或者’git checkout HEAD <file>’命令时,会用HEAD指向的master分支中的全部或者部分文件替换缓存区以及工作区中的文件.这个命令也是极具危险性的,因为不但会清楚工作中未提交的改动,也会清楚暂存区中未提交的改动.

 

这里主要的是说一些Git在执行命令的时候,各个文件的情况和变动情况.

Git 工作区、暂存区和版本库

Git 工作区、暂存区和版本库 暂存区(stage, index)是 Git 最重要的概念之一,理解了这个概念很多 Git 命令就不再那么神秘了。今天在写这部分的内容,画了一个图,看看有没有什么问题...
  • felix_f
  • felix_f
  • 2013年12月11日 20:00
  • 6456

Git学习3:理解工作区和暂存区

在Git学习过程中,遇到了如下几个概念:工作区、暂存区和版本库。刚开始觉得Git不就是一个版本控制系统嘛,搞这么多概念干嘛。实际上正是这些概念,让Git的版本控制更加便捷和高效。而Git相比其他版本控...
  • u011116672
  • u011116672
  • 2016年04月26日 19:24
  • 3369

Git 工作区、暂存区和版本库

Git 工作区、暂存区和版本库 暂存区(stage, index)是 Git 最重要的概念之一,理解了这个概念很多 Git 命令就不再那么神秘了。 今天在写这部分的内容,画了一个图,看看有没有什么问...
  • jinxinliu1
  • jinxinliu1
  • 2015年11月25日 14:24
  • 906

【Git】工作区、暂存区与版本库

本篇博文旨在介绍git的工作区,暂存区和版本库的概念;并说明使用git add、git commit 等指令时,对工作区,暂存区以及版本库分别造成的结果; 对于会使用git的人,git add,g...
  • qq_31828515
  • qq_31828515
  • 2017年03月17日 19:40
  • 1064

Git 工作区和缓存区

工作区和暂存区 1.  工作区(working directory) 简单来说,电脑中能看到的目录,就是一个工作区。 2.  版本库(repository) 工作区中有一个隐藏目录.git,这...
  • qq_22337877
  • qq_22337877
  • 2017年06月14日 16:46
  • 1298

Git暂存区原理

首先我们有个工作区,让后我们把.git目录当成是Git的工作目录,在这个工作目录里面有个git的对象库。我们假设工作区理有如图所示的树形结构: 第一次commit的时候在第一次add都还没有进行的时...
  • s646575997
  • s646575997
  • 2016年08月07日 17:12
  • 756

Git 工作区、暂存区和版本库

Git 工作区、暂存区和版本库
  • u010983601
  • u010983601
  • 2017年05月25日 18:00
  • 145

Git学习系列(八)——Git的三个工作区域,文件的状态详解

http://os.51cto.com/art/201312/425331.htm
  • u013144121
  • u013144121
  • 2014年04月10日 15:24
  • 2206

Git工作区,暂存区和版本区

Git工作区,暂存区和版本区   基本概念   这里出现了三个名词:工作区,暂存区,版本库.   工作区:你工作的地方,你在哪里工作呢?肯定是你的电脑上,那么工作区...
  • shanyongxu
  • shanyongxu
  • 2016年08月28日 19:23
  • 574

Git 工作区和暂存区

我们先来理解下Git 工作区、暂存区和版本库概念,前边我们简单介绍过,今天在温习一遍: 工作区:就是你在电脑里能看到的目录,比如 work文件夹 就是个工作区。暂存区:stage, 或index。一...
  • u010697394
  • u010697394
  • 2017年02月15日 13:32
  • 234
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Git工作区,暂存区和版本区
举报原因:
原因补充:

(最多只允许输入30个字)