寫這篇文章主要是想了解一下開源專案怎樣進行多人協作開發,順便也加深自己對 git
程式碼管理的理解。
github
專案新增 collaborators
Collaborators
類似於 Team
模式 ,Repository
的擁有者可以直接新增合作者到自己的倉庫中, 讓合作者擁有幾乎等同擁有者的許可權。
新增成員
專案的擁有者 A
想要合作者 B
參與到該團隊的團隊開發中, 於是 A
邀請 B
併成功新增B到該專案中,這樣作為合作者 B
便能貢獻程式碼了。
Fork & Pull Request
Fork
GitHub
中 Fork
是服務端的程式碼倉庫克隆,包含了原來的倉庫所有內容,如分支、Tag、提交,如下圖
Pull Request
Pull Request
是一種通知機制。你修改了他人的程式碼,將你的修改通知原來的作者,希望他合併你的修改,這就是 Pull Request
。
建立一個 Pull Request
先 Fork
專案程式碼,git clone
下來,修改程式碼後再推上去,然後進行建立 PR
,如下圖所示。
這樣的話專案就出現了一個 PR
,如下圖所示。
作為開源專案的管理者, 可以選擇 merge
該 request
到自己的專案中 , 也可以選擇關閉掉該請求。
合併分支
多人協作開發不可避免的要進行合併分支,接下來簡單說下分支的基本操作。git checkout -b A
,建立並切換到 A
分支。假如我們在 A
分支完成程式碼了。git checkout master
切回主分支,使用 git pull origin master
拉取最新程式碼。使用 git merge A
命令把 A
分支的程式碼合併到 master
上 ,git push origin master
提交到遠端倉庫中。
git rebase
git rebase
這個命令筆者在工作中也經常使用,比如說當筆者在 dev
分支寫好了程式碼,我會先去切換分支到 master
上去拉去遠端最新程式碼。然後切回 dev
分支,使用 git rebase master
將 master
最新的分支同步到dev
,然後切換到 master
分支,git merge dev
將本地的 dev
分支內容合併到 master
分支,最後 git push
將 master
分支的提交上傳。
Code Review
commits 記錄
平常做 Code Review
可以通過 commits
程式碼提交歷史來檢視,根據程式碼更改歷史可以新增評論,如下圖所示。