深入浅出git(三)——索引

本文介绍了Git中的暂存区(stage区)及其重要性,阐述了如何通过git add命令将修改从工作目录移动到暂存区,并详细解释了git checkout、提交等操作对索引的影响。通过一个具体的例子展示了文件在工作目录、暂存区和本地仓库之间的变化过程,帮助理解Git的工作流程。
摘要由CSDN通过智能技术生成

暂存区

从 gi t的角度来看,文件的修改涉及到以下三个区域:工作目录, stage区(暂存区)以及本地仓库.
git区域

当我们对我们的项目做了一些修改(新增文件,删除文件,修改文件等),我们处理的就是我们的工作目录.这个目录是存在于我们电脑的文件系统上的.所有的修改都会保留在工作目录直到我们把它们加入到暂存区(通过git add命令)。

暂存区这是对下一次提交最好的表示方式,当我们执行git commit,git会获取暂存区中的修改,并将这些修改作为下一次的提交内容.暂存区的一个实际作用就是允许你调整你的提交,你可以向暂存区新增和删除修改直到你对你下一次的提交满意,这个时候你就可以用git commit提交你的内容了。

在提交修改后,它们就会进入.git/objects目录,在其中被保存为commit,blob以及tree objects(参考[数据模型]https://www.jianshu.com/p/843c8b0aa007)那一篇文章)

把暂存区认为是一个存储修改的真实区域并不准确,git没有专门的stage目录来存放这些文件的修改(blobs),git有一个名为index的文件来跟踪这三个区域的修改:工作目录,暂存区以及本地仓库。

当我们添加修改到暂存区的时候,git会更新index文件中的信息,并且创建一个新的blob object,然后将它们放到与之前提交的记录所产生的其他blob相同的.git/objects目录中。

index的变化

接下来我们就通过一个正常的git流程来演示下git如何使用的index

首先在我们的仓库里面有master以及feature两个分支,如果我们执行下面的命令,会有三件事情发生

gi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值