Take up one idea. Make that one idea your life - think of it, dream of it, live on that idea. Let the brain, muscles, nerves, every part of your body, be full of that idea, and just leave every other idea alone. This is the way to success.

- Swami Vivekananda

本站所有资源均源于网络,仅做汇总整理,不保证数据完整性。

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 爱好者和初学者参考。

电子书下载:

* 此电子书会持续更新,以上提供的是在 2015.12.02 更新的版本,最新版本可访问官方下载页面,在页面左侧选择你要下载的电子书格式。当然,除了下载电子书外,你也可以直接在线阅读。

所有分享的资源均来源于网络公开资源,本站不保存任何数据,仅做汇总整理,不保证数据完整性。若此处无下载链接,说明分享已失效或被取消。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注