搜索了很多前辈的资料,大部分认为是可以选择性得提交代码,不想提交的文件可以不提交
但是,svn没有暂存区也可以选择性提交啊,用svn的时候不是没有这些问题吗,而且也能增加注释,也是原子性提交,根本不会出现版本混乱的问题
后来发现还有一种解释暂存区出现的原因:是因为linux原因,linux依赖于命令行,查看编辑不方便,而暂存区其实是为了替代svn提交时那个窗口设计的就是下面这个窗口↓
不过本人认为其实为了单独出一个为了查看编辑状态,单独抛出个概念并不是很合理,linus大神完全可以通过将当前状态和刚download下来时候的状态进行比对
不过有暂存区其实好处也不少,可以随时保存某一时刻的状态,代码没写完也可以保存,抽根烟喝口水啥的,用svn的时候你就得保证提交的代码完成度
最后,我觉得linus给git设计暂存区一个是为了linux的命令行,另一点是让咱们开发的时候更灵活,不需要像svn那样,用暂存区代替提交来保存阶段性的代码,让人的确心里压力小不少
可以联系现实当中仓库中的暂存区
现实中的仓库是用来存放成品的区域,在仓库的产品不会随意的改变,移动,只有在必要的情况下才会做操作
而现实中的暂存区是一块随时都有各种情况的区域,因为是暂存嘛,放在这个区域内的产品既有可能是成品等待入库保存,也有可能存放半成品,需要下一个部门取走在进一步加工
回到编程上来
仓库的用途还是存放已经写好的代码,不会随意的修改和编辑,有需要编辑(如出现bug)也是要重新走完存储流程