GIT | GIT中如何节省空间

GIT通过将对象打包到packfile并创建索引文件来节省空间,特别是在git gc或推送到远程仓库时。当对象内容相近时,只保存最后一个完整版本,其余版本保存差异,从而实现空间优化。
摘要由CSDN通过智能技术生成

通过前面的学习知道“GIT之所以能够作为版本控制系统,是因为GIT会把对文件的每次修改结果作为一个对象保存起来”,这样是否会造成空间的浪费?
答案是肯定的。

那么GIT系统如何处理这种浪费?
GIT在特定情况下,如本地推送远程仓库、手动git gc时会将磁盘上的对象打包至一个叫packfile的二进制文件以节省空间并提高效率;本地磁盘上的对象存在诸多类似的对象,大小相近,文件名相近。
为了使实例效果更明显,首先加入一个大文件repo.rb:

$ git add repo.rb
$ git commit -m 'modified repo.rb'
[slave 3523b0c] modified repo.rb
 1 file changed, 1 insertion(+), 1 deletion(-)

注意:repo.rb是随便copy过来的一个文件。
查看slave分支的tree对象:

$ git cat-file -p slave^{
   tree}
100644 blob fa49b077972391ad58037050f2a75f74e3671e92    new.txt
100644 blob cb87f458e7ca139c72cfebac8d713f815777b07d    repo.rb
100644 blob 1f7a7a472abf3dd9643fd615f6da379c4acb3e3a    test.txt

查看repo.rb文件的大小:

$ git cat-file -s cb87f45
22751

表明repo.rb文件大小为22751个字节,即约22kb。

修改文件repo.rb,往文件中添加内容并提交:

$ echo '# testing' >> repo.rb
$ git add repo.rb
$ git commit -m 'modified repo.rb'
[slave 3523b0c] modified repo.rb
 1
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值