這篇文章將藉由 2w1h(what、why、how)來介紹如何透過 github 達到更好的團隊合作。
WHAT
github 是甚麼
社交媒體有 ig、facebook 等可以分享自己的生活,而 github 則是工程師分享自己 code 或專案的地方。不過,這並不是 github 受歡迎之處。
github 最廣為使用的是它便於團隊開發的功能。至於它是如何讓團隊在其上開發的呢?簡單來說,github 就像一個雲端儲存庫,可以讓團隊中的每個人上傳自己的程式碼,並在其上做一些控制及調配。reference:GitHub - 維基百科,自由的百科全書
WHY
為甚麼要用 github
github 有幾點好處
- 版本控制:只要一有變更上傳到 github 上,就會被記錄下來,並且每次的變更動作都會有自己的動作描述。比如說我將遊戲的計分方式改變,並將這個變更上傳到 github 上。其他人看到此次的變更描述可能就是 fix the scoring method。
- 回朔:這也是一種版本控制,它可以讓工程師回到上一次的變更。
- 分支:如果每一個人都在同一條分支底下修改程式碼,當大家上傳自己的變更時 github 要相信誰的呢?因此,在團隊開發一項專案中通常會開好幾個分支(branch),之後再把分支合併。
HOW
如何實作上述內容
在一團隊開發的流程中包含以下步驟。
- 建立儲存庫(reposity 或簡稱 repo):

- 將團隊成員加入其中:

- 建立自己的分支:


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


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

- push:

- pull request:如果想要將 branch 合併(merge)在一起時,可以發送 pull request 給擁有 merge 權限的人。當擁有該權限的人收到 pull request,並檢查沒有問題後就會將 branch merge。不過,因為這個比較繁瑣,所以如果是ㄧ些小型專案,例如 game jam 可能會考慮其效率而將 merge 的權限發給大家,也就是省略了 pull request 這步驟。
注意事項
雖然說通常每個 branch 只會有一個人負責,但通常保險起見,在每次變更前都先將專案 pull 下來,避免版本衝突。不過,如果是用 github desktop,他會提醒你是否有變更還未 pull 下來。