Git之暂存区

    .git/index是一个包含文件索引的目录树,如同一个虚拟的工作区,记录文件名和文件的状态信息(时间戳、文件长度等),文件内容则保存在git对象库.git/objects目录中通过文件索引建立文件和对象库中对象实体之间的对应关系。

    执行git status或git diff命令扫描工作区改动时,先根据.git/index文件中记录的时间戳、长度信息判断工作区文件是否改变,若时间戳改变,则说明文件内容可能改变了,需要打开并读取文件内容,与更改之前的原始文件比较判断。若文件内容无更改,则将该文件新的时间戳记录到.git/index中。因此,首先通过时间戳、文件长度进行文件比较,比直接取内容更快速,使得Git更高效。


相关命令

  • git checkout -- welcome.txt       撤销工作区中welcome.txt文件尚未提交的修改
  • git status -s            状态输出查看工作区变动,若版本号小于1.7.3,则执行git diff
  • ls --full-time .git/index       查看.git/index文件(包括其时间戳)
  • touch welcome.txt       更改时间戳,不改变内容
  • git diff          工作区和暂存区比较
  • git diff --cached         暂存区和HEAD比较
  • git diff HEAD       工作区和HEAD比较
  • git stash      保存当前工作进度

  • git命令与工作区、暂存区及版本库的关系


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值