【Git】第四篇:基本操作(理解工作区、暂存区、版本库)

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

  • 工作区:就是我们创建的本地仓库所在的目录
  • 暂存区: stage或index,一般放在.git(可隐藏文件)目录下的index文件(.git/index)中,所以我们把暂存区有时候也叫做索引(index)
  • 版本库 :工作区有一个隐藏目录.git,所说的版本库就是隐藏的.git目录。

下面的图详细展示了三者之间的关系:

  1. 文件 .git/index是记录了文件名、文件的状态信息(时间戳、文件长度等)等的文件索引的目录树。
  2. Git 对象库(.git/objects)中保存的是文件索引中所指定的文件实体。
  3. 图中左侧为工作区 ,右侧为版本库 。在版本库中标记为 "index " 的区域是暂存区(stage, index)或者索引区 ,标记为 "master" 的是 master 分支所代表的目录树。
  4. 图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
  5. 当对工作区修改(新增、修改、删除)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库(objects)中的一个新的对象中,而该对象的ID 被记录在暂存区的文件索引(index)中。
  6. 当执行提交操作(git commit)时,暂存区的目录树写到版本库中的对象库(objects)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
相关推荐
Young_Gnay11 小时前
在学校和工作中遇到的一些git用法
git
一路向北_Coding12 小时前
Git系列之关联远程仓库
git·github
最好结果12 小时前
GitHub fork仓库同步原仓库tags(标签)的详细教程
git·github
周杰伦_Jay14 小时前
【Git操作详解】Git进行版本控制与管理,包括分支,提交,合并,标签、远程仓库查看
大数据·ide·git·科技·分类·github
XXX-X-XXJ15 小时前
二:RAG 的 “语义密码”:向量、嵌入模型与 Milvus 向量数据库实操
人工智能·git·后端·python·django·milvus
少女续续念15 小时前
从工具到生态:揭秘 Gitee 成为 60% 头部银行首选的底层逻辑
git
银安18 小时前
Git篇(6):分支操作的本质
git
银安18 小时前
Git篇(7):Git 检测差异的原理——为什么合并会出现冲突
git
马优晨20 小时前
Git 中的某个分支打标签
git·git 中的某个分支打标签·git分支打标签·git 分支打tag·git 分支打标签tag
Blue桃之夭夭21 小时前
git和VScode
ide·git·vscode