Git系列一——Git简介

SVN小结

       VCS(Version Control System)——版本控制系统,帮助我们记录、跟踪项目各个文件的修改变化。它最简单的形式是手工复制备份文件,在备份文件上加上时间、日期。从提高效率方面来说,我们希望这个过程是自动的,不需要过多的人工参与,于是就有了版本控制系统的诞生。

            公司的项目使用Git作为版本管理工具,让我这个一直以来只使用过SVN的人一时难以下手,也因此开始了我学习Git的征程。

       在介绍Git之前,有必要对前面一直在用的SVN的闪光点做一个小结:

                (1)轻量级拷贝——例如将trunk拷贝到branchs/v1.0只相当于在变更集文件中做一个标注;

               (2)授权文件方式实现版本库授权

               (3).svn——冗余原始拷贝,部分命令不再需要网络连接,例如差异比较、错误修改回退

      这些特点相对于版本控制系统的开山之作CVS来说,并没有本质上的变化,与CVS一样,SVN也同属于集中式版本控制系统——一个项目只有唯一一个版本库与之对应,所有团队成员都通过网络与该服务器交互,这就有可能造成单点故障的问题,也有可能出现网络延迟带来的查看日志、提交数据等操作的延迟。对于以广域网进行协同工作情况下的问题更是明显。

       除了这些集中式版本控制系统通有的问题外,SVN也存在着其特有的问题:

                里程碑和分支的设计错误

                       ①必须遵循一定的目录规则

                       ②对于新建的里程碑、分支,需要进行重复性的授权操作。

                       ③分支管理混乱、随意

      

      CVS、Subversion为代表的集中式版本控制主要存在以下缺陷:

      本地工作目录树中,只能看见代码的最新版本。若想查询历史修改记录,必须与服务器的版本库连接操作。

      DVCS(Distributed Version Control System)——分布式管理系统,以Git为代表,正有力的解决了此问题。


Git简介

       为了解决集中式版本控制系统的困扰,分布式版本控制系统(DVCS——Distributed Version Control System)得以发展,而Git则是其典型的代表,它与SVN最大的区别,也是分布式与集中式版本控制系统最大的区别在于:不只拥有一个版本库与我们管理的系统对应。

       具体来说,对于每个人来说,使用Git在本地都有一套完成的版本库,这里记录着克隆之前系统所有的更改、版本更迭。那么如何与其他人协作呢?则可设置一个或多个共享的版本库将我们在本地版本库中所作的更改Push到远程(共享)版本库中,并从远程版本库Pull到本地其他人的更改,则可达到共享。这两个操作与SVN中的commit与update命令是相似的。

        好了,初步认识了Git之后,知道它为我们解决了集中式所带给我们的困扰,那么针对SVN中的一些问题以及特点,在Git上是如何解决或体现的呢?这些疑问将会在后面的学习、使用中继续跟进。


总结

        任何一个发明创造、任何一个定理定律,都是为了解决一个问题或是解开一个疑问而出现的,同样我们的技术也不例外,技术虽然多,但在用到的时候能够积极主动并且快速 的去学习这是极其关键的,Git也算是正式开始、进行之中了。



发布了159 篇原创文章 · 获赞 225 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/lyg673770712/article/details/50120643