今天 Peter 来带你做一件曾经改变我生活的事情,那就是注册并使用 github.com 。不会用 Git ,就不能用 Github 吗? 不是这样的。Github 的网站上,通过网页操作就已经能实现很多强大的版本控制功能了。如果你从没有接触过版本控制,相信本节内容会是非常适合你的,因为 Peter 会介绍一下版本控制的几个最重要的概念。

故事从注册开始

来到 http://github.com 的首页,就可以看到注册界面。

这里也可以看到网站简介。Github 是一个因你的工作方式而生的开发平台。不管是开源项目还是商业项目,你都可以在这里托管。你可以跟3100万其他程序员一起,审核代码,管理项目,开发软件。

填写自己的用户名邮箱,再设置一个妥妥的密码,点击 Sign up for Github 按钮,世界就属于你了。对于开源项目 github 是免费的,所以注册过程中不用管付费相关的选项。

好,下面的操作就假设你已经注册完毕,并登录进来了。

创建仓库

Github 上操作虽多,但是都是围绕一个个的项目展开的。但是项目在 Github 这里通常叫做一个仓库。

一个项目其实就是一个文件夹,里面放着所有的项目文件,可以是代码,也可以是任意的文档。但是在 Github 这里,每一个项目都不仅仅是最新版本的代码,还保持着所有的历史版本和修改记录。Github 上的项目有一个新名称,叫 ”仓库“ ( Repository )。说白了,一个仓库就是一个用 Git 进行了版本控制的项目。注意 Git 是一个独立软件,是一个版本控制工具,而 Github 是一个网站,二者要区分开。

登录后再到首页,看到的就不是欢迎界面了,而是 dashboard (控制面板)。

这里可以看到一个非常醒目的新建仓库的按钮。猛戳一下,就到达了新建仓库页面。

注意要勾选 Initialize this repository with a README ,然后创建这个项目。也会看到 Create Repository ,也就是创建仓库按钮的上方还有两个选择框,一个是关于 .gitignore 的,另一个是关于 LICENSE 的。这两项如果选择了就是在项目中又多了两个文本文件,一个是 .gitignore 文件,另一个是 LICENSE 文件,暂时都不选就可以,回头需要了可以自己用编辑器新建。

点创建仓库按钮,属于我们自己的一个项目仓库就创建成功了。

编辑项目

创建项目完成后,就会跳转到 https://github.com/happypeter/toy-project 这个页面。这里的几乎每一个可以点的地方都会涉及到一个新概念,不用着急,咱们一点点的学。先来瞄准一个最为重要的,叫 commit 。

每次项目修改后,点击 commit 按钮就可以生成一个新的版本。commit 英文意思是”执行某个重要的操作“,例如 commit suicide,自我了断。但是在 git 这里,做动词讲的时候,意思是保存版本,当名词讲就是版本的意思。

现在就来编辑一下。点击界面上 Create new file 按钮,来创建一个新文件。

新建一个文件叫 love.md。填写文件名和文件内容。

下面 Commit new file 部分填写的是“版本留言”( Commit message ),说明一下为什么要做这次修改,一方面这是跟队友沟通的一种形式,另一方面如果项目版本多了,这个留言也相当于自己的笔记。上面填写一个一行的留言,下面还可以写详细留言,不过详细留言这一项是可选的。最后,点击 Commit new file ,也就是”把这个文件做到版本中“,按钮,一个新版本就做好了。

这样,一次项目编辑工作就结束了,不但是做了文件修改,而且也新添加了一个版本。

一条历史线

所有的版本就构成了”项目历史线“( Project History )。这是一条由很多版本串起来的线。

刚才的编辑操作进行完毕,自动跳转回项目页面之后,会发现原来 1 commit 的地方,现在已经变成 2 commits 。

2 commits 是个链接,点进入就进入了项目历史界面,看到的就是项目历史线了,可以看到历史线上已经有了两个版本。

点开历史线上的最新一个版本,可以看到这个版本的详细情况。一个版本中最核心的内容就是这 4 个 w 了,谁( who )在什么时间( when )改了那些内容( what ),最后一个是为什么要改( why ),这个是版本留言发挥的作用。

这里还可以看到当前版本号( Commit id ),同时还显示了它之前的一个 commit 的版本号,也就是它的“父版本”( parent )的版本号。

底层原理是这样,一个 commit 内部是保存了它的 parent 的版本号的,这样就把它和它爹连在了一起,爹还有自己的爹,就会形成下图的一条历史线。

有些版本工具是以 1,2,3… 作为版本号的,但是 Git 这里每个版本号都是 40 位十六进制数,当然有时候可以采用简写形式,取前几位来代表整个的版本号。这样的长长的版本号,表面看起来稍微麻烦一些,但是实际上妙用无穷,这里我们暂时不展开了。

好,对项目历史线的介绍就是这些了。

总结

本节的主体内容也就结束了,来总结一下。这就是 Peter 对如何通过网页的形式使用 Github 的一个简单介绍。动手方面,我们学习了,注册 Github 账户,创建新项目仓库以及编辑项目。理论方面,我们理解了什么是仓库,什么是版本,版本是如何连接成历史线的。最后,要稍微提一下,其实老手使用 Git 和 Github 的时候,通常都是在自己机器上编辑项目,然后通过命令行来上传到 Github.com ,网页界面上直接进行编辑操作的情况并不常见。