前言:在我們?nèi)粘m?xiàng)目開發(fā)過程中,往往leader會(huì)根據(jù)功能模塊不同,來進(jìn)行“任務(wù)劃分”。每個(gè)人開發(fā)過程中會(huì)與其他人有依賴關(guān)系,也就是協(xié)同開發(fā)。
下面我將模擬一個(gè)項(xiàng)目需求,來實(shí)例化一下開發(fā)流程
我們使用github作為倉(cāng)庫(kù)
一、項(xiàng)目需求
那就以最常用的注冊(cè)、登錄、找回密碼為例。小紅負(fù)責(zé)注冊(cè)模塊、小綠負(fù)責(zé)登錄模塊、小藍(lán)負(fù)責(zé)找回密碼模塊。
二、工作流描述
我們已有一個(gè)中心倉(cāng)庫(kù)(master),小紅小綠小藍(lán)三人分別fork一份到自己“遠(yuǎn)程倉(cāng)庫(kù)”。然后分別clone(克?。┑奖镜?,在自己pc中和自己遠(yuǎn)程倉(cāng)庫(kù)中進(jìn)行開發(fā)和提交操作。

此例子Master地址:
https://github.com/datura-lj/git-fork-demo
下面為Master原有的代碼:
# git-fork-demo
描述:這是一個(gè)測(cè)試git fork工作流程的demo。
有小紅、小綠、小藍(lán)三人共同開發(fā)
===============================================================
這里是系統(tǒng)上原有的代碼
===============================================================
1. 小綠進(jìn)行自己開發(fā)
首先,將中心倉(cāng)庫(kù)Master的代碼,fork到小綠自己的遠(yuǎn)程倉(cāng)庫(kù)中。在瀏覽器地址欄輸入地址:



至此fork完成,在上圖可看出,此代碼已經(jīng)在小綠的遠(yuǎn)程倉(cāng)庫(kù)中(包括分支和提交記錄等等)。
其次,我們將遠(yuǎn)程代碼clone到本地,然后做一些修改,Push回遠(yuǎn)程倉(cāng)庫(kù)。
$ git clone git@github.com:Datura900607/git-fork-demo.git
$ git status
$ git add --all
$ git commit -m "開發(fā)了一個(gè)功能"
$ git push origin master
然后,更改代碼,并成功提交到小綠遠(yuǎn)程倉(cāng)庫(kù),小綠就可以發(fā)送一個(gè)合并到Master上的請(qǐng)求。(Pull request或merge request),然后管理員同意即可。
三、依賴他人代碼
場(chǎng)景一:小紅直接拉去Mater的代碼
創(chuàng)建一個(gè)上游遠(yuǎn)程倉(cāng)庫(kù),將Master代碼拉取到小紅的本地。
$ git remote add upstream https://github.com/datura-lj/git-fork-demo.git
$ git pull upstream master
場(chǎng)景二:小紅和小綠有依賴。但是小綠代碼還沒Pull request到Master。
方法一:
直接從小綠遠(yuǎn)程倉(cāng)庫(kù)拉取代碼。
$ git pull https://github.com/xiaolv/datura-lj/git-fork-demo.git master
方法二:
給小紅添加小綠的遠(yuǎn)程倉(cāng)庫(kù)
$ git remote add xiaolv https://github.com/xiaolv/datura-lj/git-fork-demo.git
$ pull xiaolv master
其他
1.理解ssh和https方式
描述:在我們將遠(yuǎn)程倉(cāng)庫(kù)clone到本地時(shí),可選擇兩種方式。其一是ssh(通過設(shè)置ssh),其二https(通過賬號(hào)密碼方式,此處注意本例是github的賬號(hào)和密碼)
