6.1、團隊內協作
6.1.1、建立本地庫
如上圖所示,一個名叫劉備的人,在本地電腦中建立了一個專案,並使用 git 來維護。
6.1.2、推送本地庫到程式碼託管中心
如上圖所示,劉備想讓別人也能看到自己本地庫中的內容,就透過 push 命令,將本地庫複製上傳到程式碼託管中心,形成遠端庫。
關於程式碼託管中心的簡介,請參考1.5節
6.1.3、克隆遠端庫到本地
如上圖所示,一個名叫孔明的人,在程式碼託管中心看到了劉備的專案,覺得很有意思,就透過 clone 命令,複製下載到了自己的本地電腦。
6.1.4、確認團隊關係
如上圖所示,孔明覺得劉備很厲害,這個專案很偉大,就加入了劉備的團隊,從而獲得了可以修改劉備這個專案遠端庫內容的許可權。
6.1.5、推送本地庫的修改到遠端庫
如上圖所示,孔明先在自己的本地庫對專案內容做了增刪改,然後透過 push 命令,複製上傳到遠端庫。
注意:必須是該專案的團隊成員,才能修改該專案遠端庫的內容。
6.1.6、拉取遠端庫的修改到本地庫
如上圖所示,劉備發現孔明對遠端庫的內容做了修改,就透過 pull 命令,將遠端庫的更新同步到自己的本地庫。
6.2、跨團隊協作
6.2.1、複製遠端庫
如上圖所示,一個名叫周瑜的人,也覺得劉備這個專案很有意思,但不願意加入劉備的團隊;於是就透過 fork 指令,複製了劉備的遠端庫到自己的名下;周瑜在本地庫修改後的內容,也只是 push 推送到自己的遠端庫中。
6.2.2、傳送拉取請求
如上圖所示,周瑜覺得自己很厲害,對專案內容做了很重要的補充,希望可以將自己遠端庫中的更新內容同步到劉備的遠端庫中,所以向劉備的遠端庫傳送了一個 pull request (拉取請求)。
6.2.3、稽核拉取請求併合並內容
如上圖所示,劉備看到周瑜的拉取請求後,先稽核了周瑜更新的內容,覺得確實不錯,於是就把周瑜遠端庫中的更新內容同步合併到自己的遠端庫中。
6.2.4、拉取遠端庫的修改到本地庫
如上圖所示,當週瑜遠端庫中的更新內容經過稽核同步合併到劉備的遠端庫後,劉備和孔明可以透過 pull 命令,將(劉備)遠端庫的更新內容拉取到自己的本地庫中。