為你自己學Git心得(下)

在第5章有稍微提到分支跟head的概念,在第6章正式開始介紹如何使用分支。
基本上要多人同時開發一個大型專案,必定會產生多個版本的程式碼,如果想要新增功能或是修正Bug就可以自己拉出一個分支來處理。現在的大型程式在多人共同開發的時候,會引進像Git Flow之類的開發流程。
在Git內新增、刪除分支的成本都很低也不複雜,即使是一個人進行軟體開發時,我們也可以使用分支來加速開發。
切換分支主要做了2件事情:(1)更新暫存區以及工作目錄。(2)變更HEAD的位置。切換分支時,會用該分支指向的Commit內容來更新暫存區以及工作目錄。這本書用一串葡萄來比喻分支指向的Commit內容十分淺顯易懂,讓我覺得非常貼切。

第7章則是教你如何修改Commit紀錄,另外釐清三個不同指令(Reset、Rebase和Revert),在書裡很清楚地整理出來哪時要用哪個指令。

第8章介紹了什麼是標籤(tag),在多人開發或是軟體開發時都會有各自的軟體開發流程,每一版軟體需要上線時,都會上一個軟體版號或是release作為特定的里程碑。簡單來說,標籤不會隨著Commit移動、分支則會隨著Commit移動。

第1到第8章已經將Git功能介紹了差不多了,第9章開始介紹日常中常常遇到的狀況題與冷知識,像是如果工作到一半臨時要處理其他問題該怎麼辦,一般人常常就先Commit目前進度,修好問題之後再切換回來就好。這邊介紹了另一個Git指令Stash,之後再把Stash存起來的東西再拿出來使用。不過筆者自己也是建議使用Commit進度的方法就好了。

第10章介紹了什麼是Github,現代從事軟體協作的工程師應該都有聽過Github網站,常用的指令包括Pull/Push/Fetch三個常見的指令。另外,Github網站有各式各樣的公開專案,我們可以善用Fork功能來替製作符合自己需要的版本,如果修改後覺得很滿意就可以回饋給原作者,在Github網站內使用Pull Request(PR)功能回饋給作者。

第11章介紹了什麼是Git Flow,Git Flow給來自四面八方的開發人員一套開發流程來遵守,這幾年來也陸續有其它優秀的開發流程,例如GitHub Flow、Gitlab Flow等流程。這本書用Git Flow來介紹,在Git Flow內主要分支有master、develop、hotfix、release以及feature這幾個分支,不同公司有不同的Flow。

Github也提供免費Git Server,所以我們可以用Github製作免費個人網站。網路上已經提供了很多GitHub Pages範本,我們可以使用這些範本輕易產生個人網站。這兩篇Git心得就是使用這些Github Pages範本完成。