Git使用学习2:Git 工作区、暂存区和版本库
来源:互联网 发布:淘宝不实名能买东西吗 编辑:程序博客网 时间:2024/06/05 17:49
2. 工作区、暂存区和版本库
- 基本概念
- 工作区:简单理解就是需要进行版本管理的某个本地文件夹,这个文件夹里面多了一个
.git
文件隐藏文件。 - 版本库:工作区文件夹下的
.git
就是版本库。 - 暂存区:英文叫
stage
, 或index
。在版本库.git
)目录下,有一个index
文件。它实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的内容并不存储其中,而是保存在Git对象库(.git/objects
)中,文件索引建立了文件和对象库中对象实体之间的对应。如果当前仓库,有文件更新,并且使用git add
命令,那么这些更新就会出现在暂存区中。
- 工作区:简单理解就是需要进行版本管理的某个本地文件夹,这个文件夹里面多了一个
- 简单说明
- 图中左侧为工作区,右侧为版本库。在版本库中标记为
"index"
的区域是暂存区(stage
或者称index
),标记为"master"
的是master
分支所代表的目录树。 - 图中我们可以看出此时
"HEAD"
实际是指向master
分支的一个”游标”。所以图示的命令中出现HEAD
的地方可以用master
来替换。 - 图中的
objects
标识的区域为Git
的对象库,实际位于".git/objects"
目录下,里面包含了创建的各种对象及内容。 - 当对工作区修改(或新增)的文件执行
"git add"
命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。 - 当执行提交操作(
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
分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
- 图中左侧为工作区,右侧为版本库。在版本库中标记为
阅读全文
0 0
- Git使用学习2:Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git工作区、暂存区和本地版本库关系
- git 工作区、版本库和暂存区
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git工作区,暂存区和版本库
- git中的版本库,暂存区和工作区
- Git 工作区、暂存区和版本库
- git工作区、暂存区和版本库之间联系
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- Git 工作区、暂存区和版本库
- git工作流程、Git 工作区、暂存区和版本库
- pip、lxml、requests安装
- JAVA代码优化
- Reinforcement Learning.pdf 2017 英文原版 免费下载
- Bootstrap(三十八)
- PYTHON :SyntaxError: Non-UTF-8 code 解决办法
- Git使用学习2:Git 工作区、暂存区和版本库
- Bootstrap(三十九)
- windows,linux 实战渗透 主机常见端口漏洞
- Using MVVM Light with your Xamarin Apps.pdf 2017 英文原版 免费下载
- 20171106_chr_downInterceptor 自定义拦截器实现下载前登陆拦截
- RHadoop搭建
- 十进制数转换为2进制、十进制数转换为8进制、十进制数转换为16进制
- STM32之SPI通信
- E