第2章 爱上Git的理由
本章将通过一些典型应用展示Git作为版本控制系统的独特用法,不熟悉版本控制系统的读者可以通过这些示例对版本控制拥有感性的认识。如果是有经验的读者,示例中Git和SVN的对照可以让您体会到Git的神奇和强大。本章将列举Git的一些闪亮特性,期待能够让您爱上Git。
2.1 每日工作备份
当我开始撰写本书时才明白写书真的是一个辛苦活。如何让辛苦的工作不会因为笔记本硬盘的意外损坏而丢失?如何防范灾害而不让一个篮子里的鸡蛋都毁于一旦?下面就介绍一下我在写本书时是如何使用Git进行文稿备份的,请看图2-1。
图 2-1 利用Git做数据的备份
如图2-1所示,我的笔记本在公司局域网里的IP地址是192.168.0.100,公司的Git服务器的IP地址是192.168.0.2。公司使用动态IP上网因而没有固定的外网IP,但是公司在数据中心有托管服务器,拥有固定的IP地址,其中一台服务器用作Git服务器镜像。
我的写书习惯大概是这样:在写完一个小节或是画完一张图后,我会执行下面的命令提交一次。每一天平均提交3-5次。提交是在本地完成的,因此在图中没有表示出来。
$git add-u#如果创建了新文件,可以执行git add-i命令。
$git commit
下班后,我会执行一次推送操作,将我在本地Git版本库中的提交同步到公司的Git服务器上。相当于图2-1中的步骤①。
$git push
因为公司的Git服务器和异地数据中心的Git服务器建立了镜像,所以每当我向公司内网服务器推送的时候,就会自动触发从内网服务器到外网Git服务器的镜像操作。这相当于图2-1中的步骤②,步骤②是自动执行的,无须人工干预。图2-1中标记为mirror的版本库就是Git镜像版本库,该版本库只向用户提供只读访问服务,而不能对其进行写操作(推送)。
从图2-1中可以看出,我的每日工作保存有三个拷贝,一个在笔记本中,一个在公司内网的服务器上,还有一个在外网的镜像版本库中。鸡蛋分别装在了三个篮子里。
关于如何架设可以实时镜像的Git服务器,会在本书第5篇第30章中详细介绍。