2014年11月23日 星期日

Step by Step 使用github參與專案流程(上)- fork, clone, and sync


        封面這隻章魚貓大家應該都不陌生,就是coding界的facebook--github的代表圖案.Github相關教學網路上已經很多了(最近最推薦這篇:連猴子都學得會的github),所以我就不再多介紹一些基本功能,而是從實戰角度來看如何透過github來參與線上專案.以下都拿我所參與的專案為例,這是一個源自於Google Cloud的開發專案,貢獻的規範相對嚴謹,可以學到很多管理或是參與專案的技巧.


  • 先看一下參與規則:首頁連進去後,有個CONTTRIBUTING.rst的檔案,裡面詳細敘述了貢獻規則,包括要sign一個同意條款,coding style以及文件的規範,必須做好unitest等.仔細看完並且遵守這些參與規則才不會變成網路小白,造成人家開發者的困擾.
  • Watch以及Fork資料:專案右上方有三按鈕:Watch表示你要關注(訂閱)這則專案,如果有人發Issuse會收到通知,可以馬上Follow狀況.Star類似按讚的功能,最後Fork表示你要複製一份到自己的檔案庫中.我們現在就按下Fork.
    Fork完後會在自己的Github上看到複製的結果,未來我們會以這份自己複製的專案來進行開發.專案下方會說明fork的來源.
  • 接著我們把github上的檔案下載一份到本機:
$ cd ~
$ git clone https://github.com/bryanyang0528/gcloud-python.git gcloud-python
複製的網址可以從專案畫面的右方找到,點一下複製就可以
執行順利應該會看到下載專案的畫面:
  • 設定與原始專案同步:由於git是採取分散式開發,本機的專案是獨立於原始專案的,同一份專案可能同時由很多人共通開發,所以我們要設定與原始專案同步.
  • 首先我們先設定remote:
git remote add google https://github.com:GoogleCloudPlatform/gcloud-python
這是設定我們遠端的連結,設定好後輸入
git remote -v
可以看到設定有沒有成功(這邊我遠端有兩個)
  • 與原始專案同步:
$ git fetch google

就會看到已經將原始專案最新的內容下載,接著我們與自己的master合併:
$ git checkout master (先切換到master)
$ git merge/master
(因為我很久沒有同步了,所以同步很多項目)如果是才剛fork回來應該不會有那麼多.

這就完成了我們共同開發專案的第一步了,下一篇我們會介紹怎樣開個新的分流以及提出PR.