如何使用示例代码
本书使用的示例代码可从GitHub上下载1:https://github.com/miguelgrinberg/flasky。
1也可前往本书的图灵社区页面(http://www.ituring.com.cn/book/2463)下载。——编者注
这个仓库的提交历史是精心设计的,与本书介绍的功能顺序一致。使用这份代码时,我建议你从最早的提交开始,跟随本书内容的进度,向前推移提交列表。另外,你还可以从GitHub上下载每次提交代码后得到的ZIP或TAR文件。
如果你决定使用Git操作源码,那么首先要安装Git客户端(可以从http://git-scm.com/下载)。使用Git下载本书示例代码的命令如下:
$ git clone https://github.com/miguelgrinberg/flasky.git
git clone
命令从GitHub上下载源码,安装到当前目录下的flasky文件夹中。这个文件夹中不仅有源码,还有一个包含应用完整修改历史的Git仓库。
第1章会要求你检出应用的初始发布版本,然后在适当的时候再指示你向前推进查看提交历史。切换提交历史的Git命令是git checkout
。下面举个例子:
$ git checkout 1a
上述命令中的1a
代表一个标签(tag),是项目中某次提交历史的名称。这个仓库的标签根据本书的章节命名,因此本例中的1a
表示第1章使用的初始版本。大多数章都不止使用一个标签,例如5a
和5b
等分别对应第5章中用到的不同版本。
执行上述git checkout
命令后,Git会显示一个提醒消息,指出你在“孤立的HEAD”状态。这表明你不在能接受新提交的代码分支上,而是在查看项目提交历史中的某次提交。不要被这个消息吓着,但是要注意,一旦你在这个状态下修改了文件,便不能再执行git checkout
命令,因为Git不知如何处理你所做的改动。因此,为了能继续跟着本书操作,你要把改动的文件还原到最初的状态。最简单的方法是使用git reset
命令:
$ git reset --hard
这个命令会撤销本地修改,所以在执行之前,你要保存所有不想丢失的改动。
除了检出应用源码的不同版本,你可能还需要进行一些设置。例如,有时需要安装额外的Python包,或者升级数据库。需要执行这些操作时,我会提醒你。
你可能经常需要从GitHub上下载修正和改进后的源码,更新本地仓库。完成这个操作的命令如下所示:
$ git fetch --all $ git fetch --tags $ git reset --hard origin/master
git fetch
命令根据GitHub上的远程仓库更新本地仓库的提交历史和标签,但不会真正改动源文件,随后执行的git reset
命令才是用于更新文件的操作。再次提醒,执行git reset
命令后,本地修改将会丢失。
另一个有用的操作是查看应用两个版本之间的差异,以便了解改动详情。在命令行中,可以使用git diff
命令进行查看。例如,执行下述命令可以查看2a
和2b
两个修订版本之间的差异:
$ git diff 2a 2b
这个命令以补丁(patch)的形式显示差异,如果你以前没有用过补丁文件,可能会觉得这种查看改动的方式不直观。你可能发现,GitHub网站中显示的图形化对比更容易理解。例如,要在GitHub中查看2a
和2b
两个历史版本的差异,可以访问https://github.com/miguelgrinberg/flasky/compare/2a...2b。