远程协作角色:服务器,开发者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分支上

更多推荐