【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 指向的目录树就是提交时暂存区的目录树。
相关推荐
飏旎6 小时前
git pull和git fetch的区别
git
z涛.10 小时前
git的使用
git
大卫小东(Sheldon)16 小时前
智能生成git提交消息工具 GIM 发布 1.7 版本了
git·ai·rust
慧都小项19 小时前
UI测试平台TestComplete如何实现从Git到Jenkins的持续测试
git·ui·jenkins·代码质量·testcomplete·zephyr for jira
可曾去过倒悬山1 天前
Mac上优雅简单地使用Git:从入门到高效工作流
git·elasticsearch·macos
穗 禾1 天前
github与git新手教程(快速访问github)
网络·git·github
我不是程序猿儿1 天前
【git】在 GitLab 上如何把 A 分支(如 feature/xxx)合并到 B 分支(如 trunk)
服务器·git·gitlab
是芽芽哩!1 天前
GitLab 仓库 — 常用的 git 命令
git·gitlab
用手码出世界1 天前
Git之本地仓库管理
git·gitee
言慢行善1 天前
对git 熟悉时,常用操作
git