版本控制系统并非一个新兴技术,实际上在软件开发中非常常用,软件开发人员借此很好的管理自己的项目开发文档和相关的代码。事实上,很多版本控制系统的作用不止局限于代码管理,在我们日常工作中,版本控制系统也能发挥很强大的作用。本文接下来要讲的重点也是日常生活当中的应用,同时通过实际操作的例子介绍github for Windows版本控制系统的使用。
一、版本控制的概念
什么是版本控制?这里引用《pro git》当中的原话:“版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。”我们可能都有过工程返工,或者修改项目文件的经历,就拿笔者本人来说,原来做图形设计的时候,为了满足客户的各种稀奇古怪的想法,往往会制作很多个版本的Photoshop工程文件,而很多尝试之后客户又想让你给他还原到最开始的版本。大多数时候我们采用复制源文件来保存我们制作的版本,这样客户需要的时候我们可以提取相应的文件给他,而不是又返工做一次。这个时候我们可能会有很多不同的文件同时存在,我在网上看到过如下所示比较极端的情况:
对于比较小的文件当然这样处理没问题,可是大的工程呢?一个文件就几百上千个M的文件,你还这样复制?这个时候,你就需要一个版本控制系统了。采用版本控制系统(VCS)是个明智的选择。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。你可以比较文件的变化细节,查出是谁最后修改了什么地方从而造成某些怪异问题,又是谁在何时报告了某个功能缺陷,等等。使用版本控制系统通常还意味着,就算你胡来搞砸了整个项目,把文件改的改,删的删,你也可以轻松恢复到原先的样子。而由此额外增加的工作量却微乎其微。而这样的版本控制系统很多程序员早已操作的非常熟练,但是其他领域的人们对此可能还并不熟悉,这是一个非常强大的工具,它可以管理几乎一切文件,不仅仅是代码文件。
二、github for Windows介绍
Git是如今非常流行的分布式版本控制系统(关于分布式和集中式的区别你可以自己上网搜,非常容易理解),而github for Windows是Windows平台上Git的图形化客户端,提供了版本控制的常用操作。其他平台例如Linux上,Git操作主要是靠在控制台输入命令进行执行,但是Windows平台用户大多不是程序员,我们喜欢图形化的操作界面,于是Git将很多常用的基本操作做成了图形化的应用,非常容易操作。你可以从www.github.com官网上下载到github for Windows的最新版。
关于Git进行版本控制的原理我并不打算多讲,你可以参考《pro git》这本书,写的非常详细。但我相信更多的人更关心的是如何快速使用这个工具进行版本管理,于是,我们直接进入下一节,讲一个操作实例。
三、github for Windows操作实例讲解
首先,我们设想一个场景:你的老板是一个善变的人,他经常折磨你做重复的工作,并且最让你受不了的是,他经常在让你做了很多新想法尝试之后,突然觉得还是原来的方案好,于是又让你改回去。非常inhuman!。现在,他让你做一个word文档,你忙活了大半夜赶工终于做出来了,为了以防万一,你想利用github for Windows来进行版本管理。事实上,你不用脚也能想到他将来肯定会让你改方案。
需要说明的是:在使用github for Windows之前,你需要创建一个Git账号,这个这里就不讲了。
1、创建一个Repository。
打开github for Windows界面,点击create按钮,就会弹出创建版本仓库的界面。我们这里只讲本地仓库,所以将Push to GitHub前面的勾去掉。
可以看到,有三个栏目需要我们填写,分别是Name(仓库名称)、Description(描述)和Directory(仓库路径)。仓库路径就是我们本机的文件路径,指定我们的版本文件放在哪里,比如我放在“E:\Temp\”目录下。现在我们分别填写如下:
Name:Test
Description:Test github for Windows-----Jacory Gao
Directory:E:\Temp\
这时,点击Create之后,在E盘的Temp目录下,新建了一个Test文件夹。
同时,可以看到这个文件夹里面多了两个文件,Git版本控制的属性文件都在这里,我们不用管他,只要不删除就是了。在github for Windows界面中也出现了一个本地仓库Test。
2、创建一个文件。
现在,我们已经拥有了一个受GitHub监视的文件夹了,我们往这个文件夹里面添加一个word文件,如下图。
这时,再回到github for Windows的界面里面,我们双击Test仓库。就可以看到我们对文件夹所做的更改了。
现在,我们需要填写界面左上角的提交信息,并且点击Commit来提交这个版本。
之后我们会发现,这个仓库信息被成功提交了。
3、创建新的分支,并更改文件。
现在我们想要进行一些文件的更改,但是为了保险起见,我们启用一个新的分支来进行这个操作。关于分支的内容你可以想象成流水线,master是默认的分支,一般作为工程的主分支,你可以新建无数个分支来进行别的操作,之后可以把这些工作于主分支合并,或者删除这些分支,并不影响主分支中的文件内容。更多的知识你可以参考《pro git》。
现在我们先创建一个分支Test,通过点击master按钮,并在栏目中填入Test,点击createbranch:Test,建立一个新的分区
此时,我们的界面上分支显示当前分支为Test分支。
现在我们在word文档里面做一些更改试试。我们在word文档里面随意键入一些字符,并保存文档。
再次打开github for Windows中的Test仓库,我们看到Git已经监测到我们对文件做了更改,并且我们需要填写提交信息来进行提交一个新的版本。同样,填写相应的信息后,点击Commit提交。
现在我们拥有了两个不同的版本。请注意,此时我们的word文档里面是有内容的。
4、返回以前的版本。
现在我们需要返回到主干工程master分支上去,以撤销我们在Test里面所做的一切更改。非常简单,我们只需要在分支切换工具上,点击master工具就好了,就这么简单。
现在再去看看我们文件夹里面的文件,打开word后发现,原来的内容不见了。
如果我们想要再回到更改之后的内容。同样,你只需要切换到Test分支就可以了。这也就是说,我们可以通过新建分支来进行各种不同的版本管理,当然你还可以将新建的分支合并到主分支master中去。本文主要目的在于引导大家使用github for Windows,因此不会太深入讲解其中的原理。最后我再一次推荐大家阅读《pro git》。