[Git]多人協作

同步遠端、開新分支、pull request & merge

Kaycheng
6 min readDec 18, 2017

同步遠端

在多人協作一個專案的情況下,無法確切掌握大家更新專案的時間,所以在每次開啟專案時,必須要與遠端的專案做同步,才不會讓自己使用舊版本開發,而導致錯誤發生。

cd "專案名稱" (切換到專案下)
git pull (與遠端同步)

可以看到使用git pull之後,有跑出很多更新內容的部分。跑完後就表示本地端的server已與遠端server同步,即可邁向下一步。

開啟新的分支做編程

在專案上,會有很多分支。有些分支供發佈專案版本使用,有些分支供專案開發使用,而分支的使用方式,由團隊共同討論決定。這邊我們使用三種分支,第一為原本就設定好的master分支做發佈版本使用;第二為develop分支,集結所有開發的commit;第三為develop下的feature分支,做開發使用。

1–1/1–2

Step1. 在GitHub上開啟新的develop分支,如左圖(1–1)。

Step2. 回到terminal追蹤遠端分支更新,如右圖(1–2)。

git fetch origin (出現我們剛剛在GitHub上開的develop分支訊息)

Step3. 讓本地端server與遠端server配對,且追蹤遠端develop分支

git checkout --track origin/develop

Step4. 在develop分支底下,開feature分支

git checkout -b feature develop

Step5. 在feature上做coding

1–3

Step6. coding結束後,打包進本地端server,如圖(1–3)。

git status
git add .
git commit -m "Messages"

Step7. Push上遠端server

git push --set-upstream origin feature

到這邊本地端即處理好了,下一步就要回到GitHub做pull request

若是在feature分支本身就存在的情況下,則可以跳過Step1的在GitHub開分支的動作,可以從Step2開始做更新分支、配對、然後再使用git pull更新feature分支內容後,就可以coding了。

Pull Request

當專案處理好,也使用push上遠端server後,就可以到GitHub提出pull request給專案管理者,讓專案管理者做審查、接收更新。

有些時候,在本地端push完成回到GitHub,會直接出現下圖一的紅色框框,讓你能直接做pull request的動作。有時候則不會出現,但也能自己手動開啟pull request。

狀況一:直接出現pull request視窗

若在GitHub上直接出現下圖一(2–1.1),則按右邊綠色按鈕,進入pull request。

進入後會出現下圖二(2–1.2),請確定紅色框框右邊為目標分支(develop),左邊為開發分支(feature),確定後,再按右下角的綠色按鈕,就能成功pull request了,如下圖三(2–1.3)ㄧpull request的數字變成1。

2–1.1
2–1.2
2–1.3

狀況二:手動pull request

Step1. 切換到pull request視窗,按右下角new pull request按鈕。如下圖左(2–2.1)。

Step2. 將第一個紅色框框的右邊改為目標分支(develop),左邊為開發分支(feature),改完後就會出現下面第二個紅色框框,在按下create pull request按鈕。如下圖右(2–2.2)。

2–2.1/2–2.2

Step3. 按下右下create pull request,即可提出pull request。如下圖左(2–2.3)

Step4. pull request成功後,就可以看到上方的pull requests數字變為1。如下圖右(2–2.4)。

2–2.3/2–2.4

Merge分支

當pull request成立後,專案管理員即可將別人更新的專案內容合併進原本的專案裡。

Step1. 切換至pull request視窗後,會看到下圖一(3–1)。若是檔案沒有衝突,就可以按下紅色框框的Merge pull request。

Step2. 出現下圖二(3–2),則按下confirm merge,確認合併。

Step3. 出現下圖三(3–3),則表示merge成功,這時可以選擇要不要將分支消掉,可消也可不消。

3–1
3–2
3–3

協作心得:

原先還沒接觸多人協作時,只會自己用用git add ./git commit -m “Messages”,雖然自己也有翻書看,但頂多就加個不一樣名字的分支自己玩,其他功能多半都用不到,讀完就忘記。

而這次加入多人協作,才了解Git的世界浩瀚無垠。從一開始的push和merge就撞牆,一撞都是幾小時起跳,文章一篇一篇的看,不斷修正自己的步驟。幾次後才發展出自己的sop,然後和隊友分享、切磋,再更新自己。真的深刻的體會到,與其一直抱著書看,不如跳下去做,你才真的能夠懂這裡面的東西怎麼用。

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response