git版本控制是什么?git版本控制详解

TheDisguiser 2020-04-06 14:20:44 java常见问答 6595

一般来说,在程序员的开发过程中,git版本控制是必不可少的,那么大家知道git版本控制是什么吗? 本篇文章就将带你走进git版本控制的世界,一起来看看吧。

什么是“版本控制”呢?我为什么非要使用版本控制呢?

版本控制是一种记录一个或若干文件内容变化,将来可以用来查阅特定版本修订情况的系统。 假如你是位程序员或者架构师,可能会需要保存某一个项目副本或全局文档文件的所有修订版本,那采用版本控制系统(VCS)将是个明智的选择。 有了它你就可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。

Git版本控制系统是一个分布式版本控制系统,它可以使程序员团队协作开发项目,Git帮助大家管理项目工作,避免一个人所做的修改影响其他人所做的修改。你在项目中实现一个新功能的时候,Git将跟踪你对每个文件所做的修改。确定代码可行后,你将提交所做的修改,而Git将记录项目最新的状态,如果你犯了错,想撤销所做的修改,可轻松的返回以前的任何可行状态。

Git目前是最流行的分布式版本控制系统之一,它不需要中央服务器,每个人的电脑就是一个完整的版本库,如果需要多个人协作开发项目,在修改项目的时候只需要把自己修改的文件发送其他人就可以了,不需要发送整个项目。

那什么是分布式版本控制系统呢?

在之前的诸多系统中,例如 CVS、Subversion 以及 Perforce 等,都是一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们通过客户端连到这台服务器,取出最新的文件或者提交更新。这是传统版本控制系统的标准做法。这种做法带来了许多好处,特别是相较于老式的本地 VCS 来说。 现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。

但是凡事都有两面性。这么做有个最显而易见的缺点,就是太依赖中央服务器了,鸡蛋不能放在同一个篮子里,中央服务器也是,假如中央服务器突然出现故障,宕机一小时,那么在这一小时内,谁也无法提交更新,也就无法协同工作。而且如果中心数据库所在的磁盘发生损坏的话,又没有及时做恰当备份,你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。

于是分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。 在这种系统中,有 Git、Mercurial、Bazaar 以及 Darcs 等,在分布式系统中,客户端并不只提取最新的文件快照, 而是把代码仓库完整地克隆下来,包括历史记录。 这么一来,无论哪一处服务器发生故障,都可以使用其他克隆出来的本地仓库恢复。每一次的克隆操作,实际上都是一次对代码仓库的完整备份。这便是传统的版本控制无法拥有的优势。

以上就是今天关于Git版本控制的介绍,你了解了吗?更多相关内容请持续关注本网站。