Git分布式版本控制系统
-
Git 是一个开源的分布式版本的控制系统,是一个用以有效、高速的处理系统,能够从很小的项目到非常大的项目都可以进行版本管理。一个原始 的Git 版本仓库,可以让其他主机克隆这个原始版本仓库,从而使得一个Git 版本系统的仓库能够同时分布到不同的主机上,并且每一台主机的版本库都是一模一样的,并没有主次之分,极大的保证了数据的安全性,并使得用户能够自主选择 Git 服务器推送文件了,其实部署一个 Git 服务器是一件非常简单的事情。
作为一个分布式的版本控制系统,在 Git 中并没有存在主库这样的概念。并且每一份Git仓库复制出的库都是可以独立使用的,并且任何两个Git库之间的不一致的地方都可以进行合并。
同时在开发一个软件项目时,本地只有几十行或者几百行代码时可以进行维护,但当代码达到一定的数量后或两三个人共同开发一个项目时,就会非常容易会出现代码混乱、代码间冲突、代码排错难等一系列问题。并且一旦开发完工之后再发现整个项目运行不了时,提交的代码也无法确认到责任人,导致维护项目时需要花费数倍的时间。为解决上述问题,版本控制系统应运而生。
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
很多人都习惯用复制整个本地版本控制系统的项目目录的方式来保存不同的版本,虽然偶尔或许还会改名,会加上备份时间来表示区别。这么做有一个唯一的好处就是会变得简单,但是会变得特别容易犯错。有时候可能会混淆所在的工作目录,一不小心就会写错文件或者覆盖意想之外的文件,而导致无法识别文件中的修改。
如何让处于不同系统上的开发者协同工作?于是,集中化的版本控制系统应运而生,并且版本控制系统的英文名称为:Centralized Version Control Systems,简称为:CVCS。这类系统,例如CVS、Subversion(SVN)以及Perforce 等,它们有一个共同的特点就是都拥有一个单一的集中管理的服务器,并且能够保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
并且在像Git、Mercurial、Bazaar 以及 Darcs 等这类系统中,客户端并不仅仅是提取最新版本的文件快照,而是把代码仓库完整地镜像(克隆)下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作,在实际上都是一次对代码仓库的完整备份。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏