git

作者: 在路上_4c4b | 来源:发表于2018-05-28 11:14 被阅读0次

版本控制系统

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。大部分时候我们使用最频繁的还是对源代码文件的版本控制,其实任何文件都可以纳入版本控制系统。

1).更好备份:相比于将不同版本的文件以时间等命名存储备份,使用版本控制系统能节约更多的磁盘空间,因为版本控制系统不是文件的复制备份,而是差异备份,文件快照备份等等。

2).更好的回溯:可以将某个文件回溯到之前的任何一个提交状态,甚至将整个项目回退到过去的某个时间点。

3).更好的团队协作:这是最重要的,团队共同开发一款软件,如果没有版本控制,那是不可想象的,简单点的可以使用文件传输到某一位核心开发者库上进行合并,但如果团队的成员是分散在全国各地的,甚至是世界各地的,比如linux内核的开发,那完全是没办法进行的。使用版本控制后,可以比较文件的变化系统,可以查询是谁提交了新的更新,并且可以由项目负责人管理提交,进行更新的管理。

相比于svn, git有什么优势?

svn属于集中化的版本控制系统:
*有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的成员通过客户端连接到这台服务器,进行文件上传和更新。*

优点:
   a.使用简单,比较符合我们的常规思维(我当年从SVN转向Git也花费了不少时间)。
    b.同步代码比较简单,只要一步操作即可。

缺点:
   a.丢失数据的风险:最显而易见的,由于集中化的特点,如果版本库的服务器磁盘发生故障等,你不
    能保证所有的数据已经有人提取出来了,最坏的情况是彻底的丢失整个项目的所有历史更改记录。
    b.网络中断的情况下,协作就无法进行了,因为无法连接服务器进行上传和更新。
git属于分布式版本控制系统:
客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。

优点:
    a.由于任何人每次提取操作,实际上都是一次对代码仓库的完整备份,因此近乎所有的操作都可以在
    本地执行,速度就是相当的快,并且可以在网络断开的时候操作仍然不受影响,可以频繁的进行提交
    更新,等到有网络的时候再上传到远程的镜像仓库就可以了。
    b.文档很详细,并且命令行的提示也很到位,用起来比较得新应手,而且很多的设置与操作跟linux操
    作很相近(不亏是linux之父创造的)。
    c.git的分支模型,相当的轻量级,被称为“必杀技”。     
缺点:
    a.每个开发人员都拥有所有的代码,不利于核心代码的保密(如果有重要代码需要保密,则不建议使用git)

git入门

git入门

gitlab的搭建和简单使用

gitlab

相关文章

网友评论

    本文标题:git

    本文链接:https://www.haomeiwen.com/subject/dxbwjftx.html