Skip to the content.

Git & GitHub & Jekyll 初领略

05-Mar-2017

暑假花了一点时间简单学习了一下git和GitHub的用法,因为短期内可能不会用得很频繁,这里总结一下基本使用方法和不错的学习资源,便于以后回顾和进一步学习。

回头把这篇文章拆成三篇。

Git

git是目前较为流行的命令行版本控制工具,支持分支管理和远程协作等特性。

不错的学习资源:

个人体会:

git命令行本身就提供了相对完善的信息提示,遇到一些基本的问题可以直接参考命令行提示。对于具体的某个指令想要详细了解其用法的话,还可以在命令行使用这个指令加--help参数,来查阅指令文档,非常详细。

由于git指令比较多,可以试着整理一个命令清单,能自己整理最好,回顾起来方便。另外,廖雪峰的教程在最后分享了一个清单,阮一峰的这篇博客也可以参考学习。

关于git图形化界面,我没有尝试过,但是感觉掩盖了一些git的本质,不是很推荐。

最后,简单说说对git的理解。在一个git仓库中,不同分支的所有提交版本共同近似构成一个版本树,树的每个结点是一个提交,每个新提交构成现有提交版本的子节点;每个分支维护一个指针,指向整个版本树某个结点,就代表这个分支当前的头部,从头部结点向祖先结点回溯,就可以得到该分支的版本序列(git log呈现的效果)。唯一的例外是merge两个分支的时候(非fast-forward的情况),新的提交作为新的子节点具有两个父结点,这时候用git log --graph向前回溯就能看到分支结构,当然最终两个祖先分支一定会再次汇合在某个祖先结点。

GitHub

在学习了关于git的一些资料以后,现在你应该已经有了自己的GitHub账号,并且尝试创建过GitHub仓库。这一部分我主要写写GitHub还提供其它哪些不错的资源和功能。

资源:

使用:

Markdown

markdown是一种标记语言,简洁有效,被GitHub社区大力推广和使用。在写Readme文件,发起Pull Request和Issue,以及使用GitHub Pages的时候,往往都会用到markdown,所以在这里介绍一下。

献给写作者的Markdown新手指南Markdown写作浅谈 是对markdwon语言总体的初级介绍。

Mastering Markdown这个专题 详细介绍了markdwon语法,以及GitHub对markdwon的原生支持。

Mou 是一款不错的基于Mac的markdwon编辑器。

GitHub Pages & Jekyll

GitHub Pages这个功能允许你在仓库中托管静态网页文件,然后通过特定的url就可以访问这些网页,从而构建你的个人博客或是项目主页。GitHub Pages相比于一般的博客网站,好处在于可以更加灵活地定制自己的网站样式,同时由于托管在GitHub仓库上,文件的安全性更有保障。当然,正由于其灵活性,它也具有一定的技术门槛,尤其是web开发技术,不过Jekyll+GitHub一定程度上降低了这个门槛。

GitHub Pages主页GitHub Pages Basics这个专题 简要介绍了GitHub Pages的基本使用方法,如果想要完全自定义网页的话,知道这些就差不多了,下面说说Jekyll。

Jekyll是用Ruby编写的静态站点生成器,对于符合其规范的网站源码,jekyll可以根据它们来生成静态网页。Jekyll的作者也是GitHub的founder之一,GitHub对Jekyll有很好的原生支持,你只需把符合jekyll规范的网站源码提交到仓库,GitHub会执行Jekyll来生成静态站点,接着你就可以通过访问这个仓库对应的url看到最终的效果。

Jekyll产生的目的主要还是提高网站编写的效率、便利性和结构化程度,核心的网页源码还是要用户自己编写,完全自定义Jekyll源码,对于web开发的技术能力还是有一定要求。GitHub提供了一些已经编写好的主题(模版),用户可以直接使用,或者对其进行修改。可以看到,自由度越高,技术门槛也越高,相对的,想要降低技术门槛,可灵活选择的范围就会缩小。

阮一峰的这篇博文 是对Jekyll的一个很好的入门简介,对Jekyll源码的结构,以及如何在GitHub上部署网站源码,都有一个比较清晰的阐述。

Customizing GitHub Pages这个专题 阐述了如何在GitHub上使用Jekyll,以及如何使用内建的主题,内容比较浅,信息有些杂乱,主要看第一章节

如果想认真研究Jekyll的使用,,更加丰富网页的功能,Jekyll项目的主页当然是必看的。主页的文档简洁清晰,前几章是讲如何在本地命令行运行jekyll并预览网页效果的,如果对gem这些Ruby相关的工具不想深入了解的话可以略读。

简单总结一下Jekyll的运行方式:执行liquid语言,提取yaml配置变量,合并模版和文章内容,生成网页。

想要加深理解,可以多看看别人写的Jekyll网站。这个是GitHub所有的内建主题这个是Jekyll 作者的示例网站,其他用Jekyll搭建的网站还可参考Jekyll的GitHub主页

总的来看,GitHub Pages+Jekyll还是适合极客/web开发者,即那些对自己的网站有强烈掌控欲的人。对于一般的博主,GitHub Pages可能并不是很有吸引力,还有一点,你的GitHub Pages的文章浏览量也极有可能不如在新浪或csdn这样的博客网站。

一些git实验

做了一些git相关的实验,回头再放上来。