V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
? Pro Git
? Atlassian Git Tutorial
? Pro Git 简体中文翻译
? GitX
huzhikuizainali
V2EX  ?  git

多次 Git add 的垃圾对象为什么要保留在暂存区?

  •  
  •   huzhikuizainali · 353 天前 · 530 次点击
    这是一个创建于 353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    比如一个文件 readme.txt 。修改一次 git add ,第二次修改,然后 git add ,第三次修改 然后再 git add 。这时候你会发现以上三次 add 形成的 blod 文件都留在硬盘上。不明白 Git 如此设定的目的是什么?留下前两个版本的 blod 文件在暂存区有什么作用呢?

    暂存区保留第三版 blod 文件,那么当你在工作区又修改了 readme.txt 以后,git stauts git diff 都会用到第三版的 blod 文件。但是前两版的 blod 有什么用呢?站在用户需求的角度想不到这两个老版本有什么用?而且 commit 时会提交两个老版本 blod 文件么?

    如果它们有用,那么 git 为什么要专门提供 git prune 命令去删除前两个版本呢?

    如果说它们没用吧,那么 git add 时为什么不采用覆盖机制,直接用新版 blod 替换掉上一版的 blod 文件呢?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2852 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:07 · PVG 15:07 · LAX 00:07 · JFK 03:07
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com