資安 CTF 2025-05-06

GitHub:打造高效團隊協作的新時代

用 what / why / how 三個面向介紹 GitHub 如何支撐團隊開發——版本控制、回朔、分支,以及從建立 repo 到 pull request 的完整流程。

#GitHub#git#團隊協作#教學

這篇文章將藉由 2w1h(what、why、how)來介紹如何透過 github 達到更好的團隊合作。

WHAT

github 是甚麼

社交媒體有 ig、facebook 等可以分享自己的生活,而 github 則是工程師分享自己 code 或專案的地方。不過,這並不是 github 受歡迎之處。

github 最廣為使用的是它便於團隊開發的功能。至於它是如何讓團隊在其上開發的呢?簡單來說,github 就像一個雲端儲存庫,可以讓團隊中的每個人上傳自己的程式碼,並在其上做一些控制及調配。

reference:GitHub - 維基百科,自由的百科全書

WHY

為甚麼要用 github

github 有幾點好處

  1. 版本控制:只要一有變更上傳到 github 上,就會被記錄下來,並且每次的變更動作都會有自己的動作描述。比如說我將遊戲的計分方式改變,並將這個變更上傳到 github 上。其他人看到此次的變更描述可能就是 fix the scoring method。
  2. 回朔:這也是一種版本控制,它可以讓工程師回到上一次的變更。
  3. 分支:如果每一個人都在同一條分支底下修改程式碼,當大家上傳自己的變更時 github 要相信誰的呢?因此,在團隊開發一項專案中通常會開好幾個分支(branch),之後再把分支合併。

HOW

如何實作上述內容

在一團隊開發的流程中包含以下步驟。

  1. 建立儲存庫(reposity 或簡稱 repo):

建立 repository

  1. 將團隊成員加入其中:

加入團隊成員

  1. 建立自己的分支:

建立分支 1

建立分支 2

  1. 將專案克隆(clone)到本地端:這步是為了讓我們可以在自己的電腦中修改及新增程式碼。因為我自己習慣用 github desktop,所以以下會用 github desktop 做示範,並且我有跳過 sign in 的步驟,如果有疑問可以參考這份簡報的第五頁。

GitHub Desktop clone 1

GitHub Desktop clone 2

  1. commit:做完變更後,圖中 changes 那欄會顯示使用者做了那些變更。接著在 summary 那欄填入該項變更的描述。最後按下 commit。

commit 畫面

  1. push:

push 畫面

  1. pull request:如果想要將 branch 合併(merge)在一起時,可以發送 pull request 給擁有 merge 權限的人。當擁有該權限的人收到 pull request,並檢查沒有問題後就會將 branch merge。不過,因為這個比較繁瑣,所以如果是ㄧ些小型專案,例如 game jam 可能會考慮其效率而將 merge 的權限發給大家,也就是省略了 pull request 這步驟。

注意事項

雖然說通常每個 branch 只會有一個人負責,但通常保險起見,在每次變更前都先將專案 pull 下來,避免版本衝突。不過,如果是用 github desktop,他會提醒你是否有變更還未 pull 下來。