使用Git與Github多人協同開發流程

Yohann_SF發表於2017-01-02

使用Git與Github多人協同開發流程

  假設目前有兩個開發者A和B共同完成一個專案,首先確定一個主開發者,這裡就假定為開發者A了。

  首先開發者A在自己的Github上建立一個遠端倉庫,然後再在本地建立一個本地倉庫,再將本地和Github關聯起來,幹完這些工作後開發者A就開始愉快地寫程式碼(作為主開發者可能就先把大體框架搭建起來),框架搭完後將程式碼提交到本地倉庫中,然後push到自己的Github遠端倉庫上,由於A是主開發者那他肯定是專案的管理者,所以他的Github遠端倉庫可以是為源倉庫,那麼開發者B自然而然就是拉下手的。

  開發者A將自己寫的程式碼推送(push)完了之後,然後就是開發者B大顯身手的時刻了,開發者B克隆(clone)了源倉庫,也就是開發者A的之前push到自己的Github上的專案,B大刀闊斧地寫完程式碼後直接一個push,咦…怎麼推送不上去,提示什麼許可權問題,你當然push不上去,因為那是別人的倉庫(而且你也沒有關聯),要是你直接能推送上去,那程式碼世界豈不要毀滅了。

  好吧,正確的做法是:開發者B先Fork開發者A的Github上的倉庫,Fork的就相當於建立一個分支(拷貝別人的專案),Fork了之後開發者A的Github上會出現一個和開發者A一模一樣的倉庫,然後開發者B在clone自己的Github上的倉庫到本地,這樣就可以開工了,寫完程式碼後先push到自己的Github遠端倉庫中,就在此刻機智的同學會發現:如果在開發者B寫完後準備push的時候,勤奮的開發者A又同時寫了其它模組並且已經push到Github上了,這可咋辦哩!

  別方,Git早已為我們想好了一切,此時的話要做的工作就是將開發者A遠端倉庫的更新同步到開發者B的本地,那麼fetch就可以閃亮登場了,fetch就是從遠端倉庫中抓取本地倉庫中的沒有的資料,別急,fetch僅僅只是抓取資料,之後還得用merge合併一下分支,哇…合併成功沒有發生衝突,這樣B終於可以推送了,最後再在Github上Pull request一下,就是給主開發者A傳送一個請求,請求合併專案,最後A看了一下B寫的功能,覺得挺不錯的,然後同意了開發者A的request(merge),就這樣兩人愉快的協作著……

相關文章