git中工作区,暂存区和仓库的概念

工作区>>>>暂存区>>>>仓库

初始化完成后,三个区域都是空的,这个时候记录就算是初始化了,开始记录这三者差异。

在工作区创建一个新的文件test.txt,先add到暂存区,这时可以使用git diff来查看工作区和暂存区的差异(操作1),当然,这里肯定是没有差异的!记住,这里是比较差异,不存在哪个区的数据没有了或空了,因为数据只有一份。

然后,你在工作区对test.txt进行修改(并没有将暂存区提交到仓库),修改保存后,同样可以使用git diff来查看工作区和暂存区的差异(操作2),当然,这里肯定是有差异的!

在你并没有再次进行git add test.txt操作前,使用git commit将暂存区(第一次add的test.txt版本)提交到仓库,这时仓库就有了第一个版本的test.txt文件。

这时你同样可以使用git diff来查看工作区和暂存区的差异,和操作2的结果是不是一样的?对,是一样的。因为你并没有git add,工作区和暂存区数据存在差异。

这时你使用git diff --cached来查看暂存区和仓库的差异(操作3),当然,这里肯定是没有差异的!同样是因为你并没有再一次git add。

好了,你开始执行第二次git add,执行完后,再试试git diff操作,是不是发现没有差异了?可以证明这里确实比较的是工作区和暂存区的数据差异了吧!

好,再试试git diff --cached操作,是不是发现有差异了?也证明了这里确实比较的是暂存区和仓库的数据差异。

另外,我还想说一下git add的反向命令git checkout,就是将工作区提交到暂存区的数据撤销掉。以及git commit的反向命令git reset HEAD,就是将提交到暂存区的数据以仓库数据为基准撤销暂存。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值