记得在第一次接触代码的时候,当对一些改动不是很确定的时候,我的做法就是在我的电脑上保留多个文件,分别以不同的名字来保存,以便于以后发现某个地方的带动是错误的好做修改,现在想想真是好笑啊。
慢慢的在工作和学习中学会使用了一些版本控制工具,比如 SVN、Git, 使用Git 也有一段的时间了,但是对其中的东西还不是很透彻,因此想着写一些东西将其记录下来加深印象。
既然以前接触过 SVN 那么首先我们对这两个版本控制工具做个对比吧!
SVN 就是集中化的版本控制系统,对于这类系统都有单一的服务器来进行管理,保存着所有文件数据的修改。对于所有的工作人员都需要通过客户端连接到这台 Server 上获取到最新的数据文件,然后对文件进行修改提交。对于这类版本控制系统来说它的优点在于: 每个工作人员都可以清晰的看到其他人做了什么改动,管理员也可以方便对每个用户进行管理。当然有优点就会有一定的缺点:我们试想一些当你的网络非常的差(本人就遇到过,更新提交代码非常非常慢)或者 Server 出现问题了那么会导致你的工作瘫痪掉,或者更为恐怖的是当 Server 坏掉了那么所有的数据都会丢失掉,哇!!! 想都不敢想了。
Git 是一个分布式的版本控制系统,对于这类版本控制系统客户端会把代码仓库的完整镜像从仓库复制下来,如此当任何协同的server 坏掉都不会影响我我们的工作,我们只需要在事后用任何一个本地的镜像进行恢复就行了。
我们用两幅图来对比下这两种不同的版本控制系统: