為你自己學Git心得(上)

這本書「為你自己學Git」由淺入深帶我進入Git的世界,這本書介紹了各種需要使用Git的各種情境,除了基本Git指令的介紹,也搭配現在常用的圖形介面軟體SourceTree使用,對於新手來說相當適用。
特別提一下,本來以為作者使用的是筆名,但是作者在序中自己說,「高見龍」是他的本名而不是筆名。

這本書總共有11個章節:
第1章:入門篇
第2章:環境安裝
第3章:終端機/命令提示字元
第4章:設定Git
第5章:開始使用Git
第6章:使用分支
第7章:修改歷史紀錄
第8章:標籤
第9章:其它常見狀況題與冷知識
第10章:遠端共同協作 - 使用 GitHub
第11章:使用Git flow

第1到4章介紹了如何安裝跟設定Git。

第1章「入門篇」介紹了一些Git的基本概念。
除了軟體工程師之外,如果常常需要編輯檔案的話會,使用Git能讓你,紀錄檔案的變化情形。
Git是一套「版本控制系統」,這個系統清楚記錄了每個檔案的歷程。相較於其他家版控系統最大的不同在於,Git會像拍照一樣紀錄完整的變化。Git系統包含了3個特色/優點:(1)免費、開源(2)速度快、檔案體積小(3)分散式系統。

第2章開始真正使用Git,一開始不免俗教你如何安裝Git,Windows/Linux/Mac都能安裝Git。如果使用其他圖形化界面軟體像是SourceTree跟GitHub Desktop也會一併安裝Git,基本上這些圖形化界面軟體只要不停地按下一步就能安裝完成。

第3章複習了一些常用的Terminal指令,如果有使用過文字化界面系統像是Linux的經驗,可以當作複習。在這裡也不免俗提到了Vim操作常見問題:「如何退出Vim?」(https://tinyurl.com/y2a6jtng)。

第4章教使用者做一些Git的基本設定,如果嫌Git指令太多太長的話,也可以在Git config裡面設定縮寫alias,以後用縮寫就可以取代太繁複的指令。

從第5章開始教你如何使用Git管理資料。如果是完全沒用過Repository,就從新增Repository開始,用git init建立.git目錄後,版本操作紀錄都會記錄在這個目錄。用Git來控管資料夾時。每次操作commit只會處理暫存區(staging area)裡的內容,所以在工作目錄(working directory)裡面的檔案記得要加到暫存區。
這本書也整理總結修改Commit紀錄的方法:
1.把.git目錄整個刪除。
2.使用git rebase來修改歷史。
3.先把Commit用git reset拆掉,整理後再重新Commit。
4.使用–amend參數來修改最後一次的Commit。

這本書還介紹了在Git中四個物件,分別是Blob、Tree、Commit跟Tag物件,一般操作上比較不容易去注意這些細節,如果想知道Git裡面是如何運作的話,可以仔細閱讀這個部分。

第5章後面也有稍微介紹如何計算SHA-1,SHA-1是Secure Hash Algorithm 1的縮寫,在Git中,會影響SHA-1的計算公式是:
1.物件(Blob/Tree/Commit/Tag) 字樣
2.一個空白字元
3.輸入內容的長度
4.Null 結束符號
5.輸入內容

因為SHA-1計算出來的結果幾乎不會重複,這個特性在分散式系統非常重要,透過SHA-1值,我們可以確保當我們傳遞資料時,資料的內容沒有被修改過。