Git 工作区、暂存区和版本库
基本概念
我们等来理解下Git工作区、暂存区和版本库概念
工作区:就是你在电脑里能看到的目录
强烈推荐git新手阅读
暂存区:英文叫stage,或index。一般存放在igt 目录下的index文件(.git/index)中,所以我们把暂存区时也叫作索引(index).
版本库:工作区有一个隐藏目录.git 这个不算工作区,而是Git的版本库。
下面这个图展示了工作区、版本库中的暂存区和版本之间的关系:

图中左侧为工作区,右侧为版本库。在版本库中标记为"index"的区域就是暂存区(stage,index),标记"master"的是master分支所代表的目录树。
图中我们可以看出此时"HEAD"实际是指向master分支的一个游标.所以图示的命令中出现HEAD的地方可以用master来替换。图中的objects标识的区域为Git的对象库,实际位于".git/objects"目录下,里面包含了创建的各种对象及内容。
当对工作区修改(或新增)的文件执行"git add"命令时,暂存区的目录树被被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的I被记录在暂存区的文件索引中。
当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master分支会做相应的更新。即master指向的目录树就是提交时暂存区的目录树。
当执行"git reset HEAD"命令时,暂存区的目录树会被重写,被master分支指向的目录树所替换,但是工作区不受影响。
当执行"git rm --cached <file>"命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行"git checkout."或者"git checkout --<file>"命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作中未添加到暂存区的改动。
当执行"git checkout HEAD."或者"git checkout HEAD <file>"命令时,会用HEAD指向的master分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作中未提交的改动,也会清除暂存区中未提交的改动。
Git 工作区、暂存区和版本库的更多相关文章
- 【原创】Git删除暂存区或版本库中的文件
0 基础 我们知道Git有三大区(工作区.暂存区.版本库)以及几个状态(untracked.unstaged.uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的 ...
- git工作区、暂存区、版本库之间的关系
区分三者关系 Git最让你迷惑的无非是它里面的各种概念了,如果是刚开始接触Git希望看完本篇介绍之后有一个清晰的认识,笔者认识也有限这里只说说个人对使用Git的感受,说一下它里面的几个最常用的概念的理 ...
- 【Git】(1)---工作区、暂存区、版本库、远程仓库
工作区.暂存区.版本库.远程仓库 一.概念 1.四个工作区域 Git本地有四个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或 ...
- [git]入门-工作区、暂存区、版本库
转载整理自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256 ...
- Git工作区、暂存区和版本库
基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在 ".git目录下" 下的in ...
- Git-Runoob:Git 工作区、暂存区和版本库
ylbtech-Git-Runoob:Git 工作区.暂存区和版本库 1.返回顶部 1. Git 工作区.暂存区和版本库 基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电 ...
- Git 工作区、暂存区和版本库、操作流程
Git 工作区.暂存区和版本库 基本概念 我们先来理解下Git 工作区.暂存区和版本库概念 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在 ".g ...
- 【第四篇】-Git 工作区、暂存区和版本库之Spring Cloud直播商城 b2b2c电子商务技术总结
Git 工作区.暂存区和版本库 基本概念 我们先来理解下 Git 工作区.暂存区和版本库概念: 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫 stage 或 index.一般存放在 .git ...
- Git使用指南(2)——工作区,暂存区,版本库
1 工作区修改添加到暂存区 git add 2 暂存区提交到版本库 git commit 3 版本库更新到暂存区 git reset HEAD 4 删除暂存区文件 git rm --cached< ...
随机推荐
- 【优先队列】POJ1442-Black Box
[思路] 建立一个小堆和一个大堆.大堆用来存放第1..index-1大的数,其余数存放在大堆,小堆的堆顶元素便是我们要求出的第index大的数.每次插入一个A(n),必须保证大堆中数字数目不变,故先插 ...
- python基础之面向过程编程,模块
面向过程编程 面向过程的核心是过程,指的是解决问题的步骤,即先干什么再干什么,就好像设计一条流水线. 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身 ...
- JDK源码学习笔记——HashSet LinkedHashSet TreeSet
你一定听说过HashSet就是通过HashMap实现的 相信我,翻一翻HashSet的源码,秒懂!! 其实很多东西,只是没有静下心来看,只要去看,说不定一下子就明白了…… HashSet 两个属性: ...
- [bzoj1011](HNOI2008)遥远的行星(近似运算)
Description 直 线上N颗行星,X=i处有行星i,行星J受到行星I的作用力,当且仅当i<=AJ.此时J受到作用力的大小为 Fi->j=Mi*Mj/(j-i) 其中A为很小的常量, ...
- 2016.4.3NOI上较难的动规题目(仔细分析样例)--王老师讲课整理
1.NOI 191:钉子和小球 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个三角形木板,竖直立放,上面钉着n(n+1)/2颗钉子,还有(n+1)个格子(当n=5时如图1).每 ...
- 8VC Venture Cup 2016 - Final Round (Div. 2 Edition)B. sland Puzzle 水题
B. sland Puzzle 题目连接: http://www.codeforces.com/contest/635/problem/B Description A remote island ch ...
- HDU 4639 Hehe (2013多校4 1008 水题)
Hehe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- subline text 工具快捷键说明
编辑 ctrl + enter 光标当前行下一行新增一行,并且光标跳到下一行进行编辑 ctrl + shift +enter 光标当前行上一行新增一行,并且光标跳到上一行进行编辑 ...
- 用yum安装完mysql后没有mysqld的问题
在Centos中用命令 yum install mysql安装数据库,但装完后运行mysqld启动mysql的时候提示找不到,通过 find / | grep mysqld 也没找到mysqld的目录 ...
- PostgreSQL配置文件--实时统计
7 实时统计 RUNTIME STATISTICS 7.1 Query/Index Statistics Collector 下面的参数控制是否搜集特定的数据库运行统计数据 7.1.1 track_a ...