Git Version Control System

Git 是目前自己最常使用的版本控制(管理)系統 (VCS, Version Control System) 。在此之前,自己的團隊最常使用的則是 Subversion (SVN)。為什麼改用 Git 的原因,最主要是目前接觸到開發人員與團隊,普遍都是熟悉這一套 VCS ,再加上自己也不排斥它,所以就順其自然地以 Git 作為主要的 VCS 。

只要是有在產生電子資料的學習者、工作者,在電子資料的生產過程中,都會有在製作的過程中,考慮將階段性的產出進行備份;或是有在後期製作的過程中,考慮將某些電子資料,用前期製作的成果覆蓋;抑或者是要將第三方的製作成果納入自己的製作中,等等諸如此類的需要。這些在未使用 VCS 之前,通常就是以複製目錄、檔案的方式來進行,且通常大量依賴自己的眼力進行比對,且使用大量的人工來進行。

VCS 存在的目的主要是為了讓電子資料的變更者,能夠方便地記錄關於當次變更的詳細資訊,也能便於讓其他的變更者,能夠追蹤過去的歷史變更,就好像一個時光機器一樣,能讓我們取出任何一個時間點的電子資料版本,也能夠讓我們比對任何電子資料版本間的差異,讓每一位電子資料變更者的貢獻,都能夠被完整地保留在 VCS 的儲存寶庫中。

這邊將會記錄日後方便用來進行 Git 教育訓練的相關訊息,方便自己製作相關的教材。

Git 基礎

Git 工具支援 macOS, Linux, Windows 等主要的作業系統,因此上網搜尋不難找到安裝的指引。

Git 主要概念: 電子資料的儲存庫採分散式管理,每個變更者電腦中都會有一份完整的本地儲存庫 (Local Repository, .git 目錄) ;變更者平常在工作區 (Workspace, 與 .git 目錄同一階層的工作目錄) 中,對電子資料進行變更;同時將每一個製程中,將該製程相關的電子資料變更,存放 (add) 至暫存區 (Staging Area) 中;最終在製程結束時,把暫存區中的成果提交 (commit) 至本地儲存庫中,完成一次的特定目的的電子資料變更。

Git 最主要的參數命令: config, init, add, status, commit, log 。

Git 工作流程

任何的製造都會牽涉到工作流程,不同的人或團隊,對於相同的東西,都有可能採用各自的製造工作流程。譬如說以學生寫作業來說,我自己當學生時寫作業的工作流程,與我現在是學生的小孩寫作業的工作流程,肯定是不相同的,但是同樣的都是產生一個老師要求的作業。

就算大家都是使用 Git 這個 VCS ,在各自作業的情況下,工作流程可能差異極大。為了讓因為某種原因而聚在一起的人,都能夠在 Git VCS 中,同心協力地做出自己的貢獻,而不是互相扯對方的後腿,就需要一個所有人都能夠接受的工作流程,配合人、事、時、地、物來彈性選擇最佳的工作流程是一項困難的修練。

Git 常見的工作流程:Gitflow 、 GitHub flow 、 GitLab flow 等等。

Git 最佳實例

很多人在用的東西,往往可以從所有人的經驗中,萃取出符合多數人利益的最佳做法,這種經驗結晶的產物,在實務上可以視為是最佳的做法,就被稱為是最佳實例 (Best Practices) , 自己知道並使用的 Git 最佳實例如下:

  • Commit Message 最佳實例

參考資料

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料