Git是最流行的分布式版本控制系统(DistributedVersionControlSystem,简称DVCS)。它由LinusTorvalds创建,当时非常需要一个快速、高效和大规模分布式的源代码管理系统,用于管理Linux源代码。
由于Linus对几乎所有现有的源代码管理系统抱有强烈的反感,因此他决定编写自己的源代码管理系列。年4月,Git就诞生了。到了年7月,维护工作就交给了JunioHamano,自此他就一直在维护这个项目。
虽然最初只用于Linux内核,但Git项目迅速传播,并很快被用于管理许多其他Linux项目。现在,几乎所有的软件开发,尤其是在开源世界中,都是通过Git进行的。
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。版本控制技术是团队协作开发的桥梁,助力于多人协作同步进行大型项目开发。软件版本控制系统的核心任务就是查阅项目历史操作记录、实现协同开发。
常见版本控制主要有两种:集中式版本控制和分布式版本控制。
集中式版本控制系统,版本库是集中存放在中央服务器的。工作时,每个人都要先从中央服务器获取最新的版本。完成之后,再把自己添加/修改的内容提交到中央服务器。所有文件和历史数据都存储在中央服务器上。SVN是最流行的集中式版本控制系统之一。
集中式版本控制系统的缺点就是必须联网才能使用,如果使用局域网还好,速度会比较快。而如果是使用互联网,网速慢的话,就可能需要等待很长时间。除此之外,如果中央服务器出现故障,那么版本控制将不可用。如果中心数据库损坏,若数据未备份,数据就会丢失。
分布式版本控制系统,每台终端都可以保存版本库,版本库可以不同,可以对每个版本库进行修改,修改完成后可以集中进行更新。虽然它没有中心服务器,但可以有一个备份服务器,它的功能有点类似于SVN的中央服务器,但它的作用仅是方便交换修改,而不像SVN那样还要负责源代码的管理。Git是最流行的分布式版本控制系统之一。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑损坏不会影响到协作的其他人。
Git相较于SVN:
提交速度更快:因为在SVN中需要更频繁地提交到中央存储库,所以网络流量会减慢每个人的速度。而使用Git,主要在本地存储库上工作,只需每隔一段时间才提交到中央存储库。没有单点故障:使用SVN,如果中央存储库出现故障,则在修复存储库之前,其他开发人员无法提交他们的代码。使用Git,每个开发人员都有自己的存储库,因此中央存储库是否损坏并不重要。开发人员可以继续在本地提交代码,直到中央存储库被修复,然后就可以推送他们的更改;可以离线使用:与SVN不同,Git可以离线工作,即使网络失去连接,也可以继续工作而不会丢失功能。毋庸置疑,Git是目前最流行、最好用的版本控制系统,在它的基础之上,催生出了GitHub和GitLab这两个当前最流行的代码托管平台。放眼望去,包括阿里云、大众点评、去哪儿、携程在内的很多国内外一线互联网公司都基于GitLab做自己的代码平台二次开发,很多企业也都是基于Git和GitHub进行项目协作。所以说,熟练掌握Git,能够使用Git和基于Git的平台(GitHub和GitLab)进行团队协作,已经成为企业对工程师的最基本要求。很多人可能会问,Git不就那几个简单的命令吗?有什么难的?还真不是这样,Git以及GitHub、GitLab这些工具虽然上手容易,但要真正在平时的项目协作中用好,还真不像你想的那么简单。如果不理解Git背后的工作原理,当你遇到各种奇怪的命令报错、各种复杂的分支管理场景以及代码冲突时,你往往会束手无策。同时,如果没有掌握使用GitHub和GitLab进行高效协作的精髓,项目成员就很容易陷入低效和重复劳动的困境,而通过对这些工具的高效使用并结合DevOps、CI/CD这些先进理念,团队的生产力和协作效率都可以获得大幅提升。作为项目负责人,如果不了解Git、GitHub和GitLab,你就不懂如何为团队设置集成策略,不知道如何依靠代码平台保障集成分支的安全性。因此,携程代码平台的负责人苏玲老师共同推出了《玩转Git三剑客》这门视频课程,带你深入掌握Git、GitHub和GitLab的工作原理和使用方法,从而轻松应对团队开发协作中的各种疑难杂症,从一名合格的工程师成长为一名优秀的团队工作者。预览时标签不可点收录于合集#个上一篇下一篇