簡介
在上一篇瞭解透過Atom上傳到Github的步驟後,這篇我想分享一樣是使用Atom,但是是可以與別共同編輯同一個Github專案。在公司內部主導一個專案時,通常都會使用Git來控制每個組員的版本,主導人可以先測試各組員的分支負責項目,最後在合併到主專案中,當然假如搞砸了自己負責的分支,也是可以從主枝幹或每個Commit點來還原。那我們先從多人共同合作GitHub開始吧。
組員-步驟

在這篇我就創立另外一個帳號來做測試,跟主導專案的人拿到專案的網址或位置,進入頁面,按下如上圖的「Fork」,在主導專案的人就可以看到Fork中有同伴的分支,並且會自動產生新專案名稱。



但在做這動作之前,主導專案的人要先開啟共同協作權限,如上圖,到主頁面點選『Setting』,接著點選『Mange access』,按下『 invite a collaborator』,最後輸入組員的Github註冊信箱或是名稱,按下確定即可。組員被邀請後就可以看到圖二下方會出現組員的欄位。

組員登入自己的Github後,可以看到專案頁面的名稱,如同上一段說的,因為是fork的,所以專案名稱會自動更改,並會標註是從哪個人的Github專案fork來的。


接著組員就可以參考第一篇的介紹,建置在你本機與在Atom上使用,如上圖,標示1的地方就是你從主專案clone來的,而右下角的Commit紀錄也可以點選不同的Commit來觀察程式的修改。

我們來嘗試使用組員帳號Push新的檔案到主專案中。Commit完成後會在歷史紀錄視窗新增一欄你剛剛的動作,並且在Push時,上圖箭頭處會呈現「Pushing」字樣,完成後會顯示「Fetch」。


假如你遇到這個問題,可能是專案的權限問題,也有可能是你電腦本機端的認證管理問題,建議到「認證管理員」刪除上圖的認證,或是把有關「Atom-github」相關的都刪除。

言歸正傳,當你成功Commit之後,在你的Fork頁面中,上塗畫紅線處,會出現這欄提示訊號,請點選「Compare」。

點進去之後,可以看到你在Atom撰寫程式的程式內容與Commit message。

在你要上傳到專案的Main之前,你可以在Github上寫一些這版本的文字敘述等資訊,讓專案主管可以了解你這次的上傳有做了什麼動作。確定之後就按下「Create pull request」,組員在Atom+Github動作差不多就到這邊結束了。
專案主管-步驟

當組員有新的Commit動作之後,專案主管都可以去『Pull requests』頁面看所有組員的每一筆Commit,可以看到上圖第一個箭頭,就是我剛剛組員帳號的Commit紀錄,而主管可以選擇要不要『Merge』到Main之中。

主管也可以對每一條Commit做一些回應。假如都完成後,就按下『Comfirm merge』。

Merge完成後,如上圖,會出現這列訊息,而Merge完成的icon是呈現紫色的。假如你想要取消Merge動作,可以按下右側的『Revert』。

最後,回到Code主頁面後,可以看到剛剛Merge完成的成果,如上圖。
小結
用了兩篇來當作Github版本控制暖身操,之後會在研究一些Github中的更多功能,而且也會在發掘一下Atom中可不可以將本篇第二段落的組員步驟直接在Atom中解決。

在版本控制中,其實也可以不用Atom來銜接,也可以用SourceTree+Git CMD來操作,上圖就是SourceTree的畫面,可以看到分支、主幹以Graph視覺化,讓成員或是主管在做版本控制時可以更清楚,有機會我將嘗試使用SourceTree,並與Atom做比較。