[每天读本书]《Pro Git》轻松学习版本控制

什么是版本控制?我为什么要关心它?版本控制是一个系统,记录一个或多个文件内容的变化,以便将来访问特定版本的修订。在本书中显示的例子中,我们控制保存软件源代码的文件的版本,但事实上,您可以控制任何类型的文件。

如果您是图形或网页设计师,您可能需要保存所有修改版本的图片或页面布局文件(这可能是您非常渴望的功能),并使用版本控制系统(VCS)这是一个明智的选择。有了它,你可以将文件返回到以前的状态,甚至将整个项目返回到过去的某个时间点。您可以比较文件的变化细节,找出谁最终修改了哪个地方,以找出奇怪问题的原因,以及谁何时报告了某个功能缺陷等。使用版本控制系统通常意味着,即使变和删除整个项目中的文件,你仍然可以很容易地恢复到原来的样子。但额外的工作量很小。

许多人习惯于通过复制整个项目目录来保存不同的版本,也许他们会改名并添加备份时间来显示差异。这样做的唯一好处是很简单,但特别容易犯错误。有时会混淆工作目录,意外写错文件或覆盖意想不到的文件。

为了解决这个问题,人们很久以前就开发了许多本地版本的控制系统,其中大多数使用一些简单的数据库来记录文件之前的更新差异。RCS,其工作原理是将补丁集保存在硬盘上(补丁指文件修改前后的变化);每个版本的文件内容可以通过应用所有补丁重新计算。

接下来,人们遇到了一个问题,如何让不同系统的开发人员合作? 因此,集中版本控制系统(CVCS)应运而生。这种系统,如 Subversion,每个人都有一个单一的集中管理服务器来保存所有文件的修改版本,合作人员通过客户端连接到服务器,取出最新文件或提交更新。多年来,这已成为版本控制系统的标准实践。

虽然这种做法比旧的本地版本控制系统带来了很多好处,但有一个明显的缺点,那就是过于依赖中央服务器。一旦停机,没有人能在停机期间提交更新,也没有人能一起工作。如果中央数据库的磁盘损坏,没有适当的备份,毫无疑问,您将丢失所有数据——包括项目的整个变更历史,只留下人们在各自的机器上保留的单独快照。本地版本控制系统也存在类似问题。只要整个项目的历史记录保存在单个位置,就有丢失所有历史更新记录的风险。

因此,分布式版控制系统(DVCS)出来了。在这种系统中,如 Git,客户端不仅提取了最新版本的文件快照,而且还完全镜像了代码仓库。这样,任何协同工作的服务器都故障,然后可以使用任何镜像的本地仓库进行恢复。因为每一个克隆操作实际上都是代码仓库的完整备份。此外,该系统可以指定与多个不同的远端代码仓库进行交互。在这种情况下,您可以在同一项目中与不同工作组的人员合作。您可以根据需要设置不同的合作流程,如层次模型的工作流,这在以前的集中系统中是无法实现的。

《Pro Git》这本书涵盖了 Git 的基本用法、分支特性、建筑和配置 Git 服务器,分布式工作流程,GitHub 的使用方法、Git 工具、Git 内部原理等各个方面的内容最终附带 Git 命令参考。零基础初学者可以通过前 3 章成为个人 Git 用户,在接下来的几章中,可以满足中高级用户深入理解的需求。这本书提供了大量的应用程序案例。不同的开发工作模式有不同的用法插图显示版本的变化状态。

注:摘自本文《Pro Git》开始章节

——————–

progit

作者:Scott Chacon / Ben Straub
评分:9.1

Git 已成为最流行的分布式版本控制系统,GitHub、CSDN CODE 提供的代码托管服务是基于 Git 的。《Pro Git》由 GitHub 员工 Scott Chacon 和另一个爱好者 Ben Straub 共同编写,主要介绍了 Git 适用于 Git 爱好者和初学者参考。

   

   下载电子书    

阅读剩余
THE END