git 遠程協作流程

遠程協作角色:服務器,開發者A,開發者B

分支策略:

如圖,服務器上運行的是master分支,是用來運行穩定版本的,在服務器的master下創建一個新的分支dev:

$git checkout -b dev
Switched to a new branch 'dev'

$git push
fatal: The current branch dev has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin dev

我們會發現,遠程分支現在只有master分支,並沒有dev分支,所以根據提示我們執行:

$git push --set-upstream origin dev
To http://xx.xx.xx/xxx.git
 * [new branch]      dev -> dev
Branch dev set up to track remote branch dev from origin.

至此,dev分支創建並提交完畢

dev分支是用來給A和B做開發測試用的,測試沒有問題後,再和master分支合併,這樣服務器上就可以運行新穩定版本了

 

然後,開發者A拉取服務器上的dev分支,這裏有兩種方法:

(1)、先在開發者A上創建dev分支,然後拉取發現問題:

$git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> dev

原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置devorigin/dev的鏈接:

$git branch --set-upstream-to=origin/dev dev

問題解決;

(2)在本地沒有dev分支的情況下,直接拉取遠程的dev分支:

git checkout -b dev origin/dev

問題解決;

 

接着,開發者A要在自己的機器上創建devA

$git checkout -b devA

接着,在devA分支上寫了代碼後,開發完成,要提交了:

$git add *
$git commit -am "branch test"
$git push --set-upstream origin devA
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 288 bytes | 288.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To http://xx.xx.xx.xx/xxx.git
 * [new branch]      devA -> devA
Branch 'devA' set up to track remote branch 'devA' from 'origin'.

這樣,就把代碼提交到遠程的devA分支了

 

開發者B在自己的機器下也和開發者A同樣的操作

然後,開發完了,要開始測試了,就要將devA和devB分支合併到服務器上的dev分支,接下來是在服務器上的操作:

$git checkout -b devA
$git branch --set-upstream-to=origin/devA devA
$git pull
$git checkout dev
$git merge devA

這樣,就把devA的分支合併到dev了,可以在dev分支上運行代碼測試了,只是有可能發生代碼衝突,這樣就只能解決了衝突再合併,解決衝突教程:https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

 

同樣的道理,當dev分支測試完了,穩定之後,就將dev合併到master分支上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章