每週一書|第九週

推薦書 :為你自己學 Git

前言

Git為開源的分散式版本控制系統(VCS),於2005年釋出於世,其優秀的版本切換控制功能,及回復與災難復原的設計等,14個年頭中已帶給全球開發工作無數的便利,任何規模的專案團隊都可見其影子。
然而在本書作者的認知中,Git卻是一門易學難通的技術。過往在業界中可能只須熟稔 20% 的指令就可完成 80% 以上的任務。

本書中,除介紹 git 的功能之外,內容也包含不少作者精心提供的冷知識。書中也同時配有實況演練,因此無論是新手上路、或是經驗老道的讀者,皆可從中學習或溫習 git 的觀念,新手平順進入,老手如虎添翼。
 

 基礎環境安裝與設定 

工欲善其事,必先利其器,本書的前四章針對 git 的初心者,介紹一連串的環境安裝與設定,從一開始的跨平台安裝,到安裝完後的個人化設定。本書提供讀者兩種git的學習工具,一為終端機、一為 Source Tree 圖形化軟體。在第三章的部分,也簡易的提到終端機的操作方式,更加全面地替讀者建立完整的相學習道路。

 開始使用Git 

來到書中第五章的部分,進入 git 的靈魂之處。本章開始即全面地介紹 git 常見的用法,包括本地及遠端 repository 的概念等,以配合新手對於專有名詞不懂之處詳加解釋,並搭配常見之景,延伸其功能與設計原因,清楚地解釋基礎指令用法。
而 git 的優點之一即為其回復與復原,書中針對一些常見的操作失誤詳加介紹,並供讀者進行情境模擬。
同時,本章後段部分,以圖解方式詳盡的解釋 git 進階的知識,包含 git 是如何追蹤資料的變化、git tree 的設計等等。

 使用分支 

本書第六章全面的帶領讀者認識分支。配合著書中每章節無不出現的狀況題與常見狀況,說明分支的各項使用方式,以及一些意外與災難發生時的可能還原方式。對於有一定經驗的開發者而言,分支(Branch)掌握了產品開發上的品質、效率、與交付等,至關重要。

 修改歷史紀錄 

第七章針對歷史紀錄的部分,有諸多的著墨。commit 在 git 之中是必經的過程,難免有時會有需要修正之處,例如:commit 的訊息修正、穿插與刪除 commit 等等。
然而,修改 commit 紀錄如同修改歷史,因此作者有特別警告歷史紀錄的一些異動方式不可隨便操作。

 Best Practices 

本書透過多個實際狀況題目,讓讀者可以知道實務上會遇到哪些情況或個案,故第九章補充其餘可能發生的狀況與 git 指令的冷知識,去補足讀者可能產生的其他疑問。再來介紹遠端共同協作常用的 repository – GitHub,同時延伸第五、六章的基礎操作。遠端協作的考量一定會比個人開發複雜許多。第十章則全面解釋遠端協作的方式,與 pull request 的概念,因此 repository 的操作較本地操作沒那麼直觀。透過此章節介紹,讓讀者可以未來進入團隊開發、以及參與開源計畫的期待。

 Git Flow 

來到最後短短的十一章,卻是實務上最重要的一個章節。因爲多人合作開發的場景已成常態。如何保證產品開發的流暢,以及產品正式推送的穩定?
因此 Git Flow 概念的出現,便成為業界中一種版本開發流程的默契。若有參與 open source、或是公司級中大型專案的開發,肯定對此不陌生 ; 若為初學者,可透過認真組建或參與一個團隊,透過 Git Flow 來獲得多人協作開發的經驗吧!

總結

Git 是一門非常吃重實際經驗的學門,若要更上一層樓學到難以精通的 git,除了自行啟動練習專案,或者參與團隊或企業的一些開發,實際狀況中的學習往往是最深刻的,並且相信在同時搭配『為你自己學Git』的教學後,能使讀者更精進於此版本控制工具,補足 git 其餘 80% 的專業知識部分,不妨入手一本,,方能真正專精,也能讓程式開發有記錄可以追尋!

 

每週一書連結

第一週:持續交付|使用 Java (Continuous Delivery in Java)

第二週:DevOps 和自動化運維實踐

第三週:DevOps 三十六計

第四週:持續交付2.0 業務引領的 DevOps 精要

第五週:Effective DevOps 中文版

第六週:DevOps Handbook|打造世界級技術組織的實踐指南 (中文版)

第七週:Jenkins2.x 實踐指南

第八週:Jenkins 2 權威指南

第九週:為你自己學 Git

第十週:精通Git 第2版

活動書籍