
推薦序
在 Git 建立之初,Linux kernel 開發已經使用私有版本控制系統 BitKeeper 數年之久,過
程十分順利,只有一個問題:某些 Linux 開發人員在意版本控制系統是私有軟體,導致
產生嚴重的爭論,這樣的衝突更造成 Linux 開發人員的免費 BitKeeper 授權被撤銷,於
是誕生了 Git。Linus Torvalds 自己花了兩星期的時間不碰任何 Linux 相關的工作,原先
是想找個 BitKeeper 的替代品,但沒有任何產品能符合他的要求,只好自己先寫一個很
基本的版本,也就是現在的 Git:一開始是用 shell 腳本湊在一起的小程式,很有 Unix
風格。諷刺的是 Git 使用了 rsync 實現分散式的特性,而這個工具最初的開發人員正是
引發離開 BitKeeper 的那位 Linux 開發人員。
我個人很欣賞 Git 資料結構簡單的特性,所以很早就參與其中,一開始主要針對 Git 的
可攜性,到後來愈來愈多通用的改善,包含「互動式重設基線」(interactive rebase,抱
歉名字取得不好!)的發明,最後則是負責 Git Windows 版的維護。在過去十年中,身
為生命科學研究人員的我幾乎每天都會透過 Git 參與各式不同的團隊,扮演的角色從跨
學科專案的專屬程式設計師,到帶領高度分散式的開放原始碼專案。
我初次遇到 Emma 是在巴黎所舉辦的 Git Merge 研討會,慶祝 Git 誕生十週年,她在會
議中的演說題目「Teaching People ...