Git 的生態已經成熟

兩個多月前,爲了恢復我的 blog,我考察了一些新的 blog 平臺,包括現在比較流行的 GitHub+jekyll 組合,也因此得以初步瞭解 Git 和 GitHub。但我當時放棄了這個組合,主要是覺得爲了寫 blog 而花費這麼大力氣去學習 Git 有些不值。

最近由於一些實際需要,我重看關於 Wiki 的資料(2007 年前後我瞭解並把玩過當時所有的主流 Wiki 程序,但現在明顯需要更新知識),再一次注意到 Git,才發現它已經發展出相當成熟的生態,而我已然落後時代許多年。好在,廖雪峯的這篇教程,讓我很容易理解並學會了 Git 的基本工作原理。事實上,此前我從未用過任何專門的版本控制工具,只接觸過 MediaWiki/WordPress/Google Docs 等擁有版本功能的平臺,但這畢竟還是不同的。

這個過程中,給我最大啓發的是陽志平老師所寫的一系列關於 Git 的文章。有時候我不免好奇,他一直在心理學領域工作,是什麼理由讓他願意花這麼多時間去擺弄諸如 Ruby/Git/Jekyll 這些非常技術範兒的東西?但我似乎又很理解他,我自己不也是這樣嗎?並不在互聯網或者技術行業,但也保持着對技術發展的關注,時不時拿來解決自己的問題。只是我從 2010 年到 2014 年這段時間裡,跟進不夠罷了。

當我瞭解了 Git 的工作原理和逐漸形成的 Git 生態之後,馬上意識到它與傳統的 SVN 等版本控制工具的不同。我當時想,基於它一定可以衍生出許多好玩的應用來。果然,李笑來把他的一些新書舊書(比如著名的《把時間當作朋友》)發佈在「知筆墨」這個網站上,而這個網站正是由 Git 技術來驅動的。

由於我的讀者當中很少程序員,並且程序員也不需要我來介紹 GitHub, 所以在此只介紹兩個我目前發現的很有趣的非技術類應用(或項目)。

1. 在 GitHub 上整理 1949 年之前的中文校歌

https://github.com/luminr/xiao-ge

這個計劃的發起人 luminr 兄說,他聽民國校歌,一首比一首氣派。後來發現每首歌的創作背景、歌詞變化、使用歷史都有很多故事,於是就很想把它們整理保存下來。但我記得 Wikipedia 上面有這些內容啊,爲什麼他要重做?原來是因爲版權問題:

这里的内容本来是维基百科中1949年前的中文校歌列表计划的一部分,但因为一些校歌未完全进入公有领域,遵照维基媒体的政策不能登载于它的系列项目上。因此转到这里单独承担暂时的版权风险,上传源代码、以协作编辑方式继续搜集工作,以便将来收录于维基文库等电子图书馆。

我也早有整理老校歌的想法,現在正好可以參與到他發起的這個活動中。目前已經有了 17 所學校的校歌,還有許多要收集的呢!

2. 電子書出版平臺 GitBook

https://www.gitbook.com

GitBook 是 2014 年出現的新應用,上文提到的「知筆墨」就是基於 GitBook 技術搭建。用戶可以在它上面很方便的書寫、發佈甚至出售電子書,默認輸出 PDF/ePub/Mobi 這三種常見的電子書格式。更重要的是,它基於 Git 和 GitHub, 有非常完美的版本控制功能。

有人說 GitBook 是朝着電子書未來正確方向前進的建構:

現在與未來的電子書,都是一種「微型網站」,結構與內容是 HTML,版面透過 CSS 樣式表設計,互動與進階都仰賴 JavaScript;即使在原生的閱讀軟體中讀書,替你組版的都是與瀏覽器相同(或極其接近)的組版引擎。未來的書籍製作工具,一個極端是全視覺化、模組化的「模擬富文本」生產工具,另一個極端則是寫代碼的編輯工具。因為還沒有到未來,所以符合的工具還不存在。GitBook 是一個已經朝正確方向前進了幾步的建構,關心電子書的人都應該嘗試看看,在書中還提到其他幾個你可以使用的服務與工具。

雖然瞭解到了 Git 的強大,但我的 blog 暫時不會搬家,我近期要瞭解的是 GitHub 上的 Wiki 功能,以確認是否能夠比 MediaWiki 更好的滿足我的需求。瞭解了 Git, 才發現其強大,也才願意花時間學會它。

最後,忍不住感嘆:一個人一輩子做一件牛逼的事就很了不起了,但 Linus Travolds這位大神在五十歲之前就給世界貢獻了 Linux 和 Git 兩個牛逼的東西,怎能不讓人佩服?!