这篇博客将会介绍一点GIT的基本概念,重点是文件状态以及对应的GIT工程的三种目录,尤其是暂存区(stage area)。有点枯燥,但应该对大家了解GIT有一定的帮助
一点GIT的概念
几乎所有的操作都在本地
用过集中式版本控制系统(CVCS)的同学都知道,断网意味着你基本没法正常工作。记得07-08年那会还在用IBM的Clearcase,如果你发现开发部门突然一阵骚动,并有人开始在走廊聊天的时候,那就是断网的时候!我觉得这是CVCS带给我们最大的好处:中场休息! 因为在CVCS中,每一个对文件的操作都必须跟服务器沟通,如果断网基本就没法干活。当然,你说我直接在Windows的文件系统修改文件行不行?应该是行的,但要是你rename了这个文件的话,一会未必能checkin成功。 但如果在断网的时候,你是没有办法看到一个文件的历史记录的,因为每个文件的历史记录都保存在服务器的。
而上的各种不爽在GIT这种分布式版本控制系统里面就不会存在的!在GIT里面,除了你要拿到别人的代码改动,或者你想把代码改动提交到服务器上 这两个动作之外,其它的动作基本都可以在断网的情况下 通行无阻!因为在本地已经有了一份完整的历史版本库 能满足你99%的工作需要!
三个状态三座屋
在GIT的世界里,每个文件的状态不是tracked就是untracked。 track指的是该文件已经在GIT的监控范围之内了,该文件的每一点改动GIT都能跟踪到;untrack指的是该文件不在GIT的监控范围之内,它的改动GIT是不会去跟踪的。 <