作者:無名--小貞貞貞貞貞貞貞貞_微博_ | 来源:互联网 | 2023-09-11 10:32
远程协作角色:服务器,开发者A,开发者B
分支策略:
![](https://img2.php1.cn/3cdc5/3984/696/c372b61734da2512.png)
如图,服务器上运行的是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, usegit 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 If you wish to set tracking information for this branch you can do so with:git branch --set-upstream-to=origin/ dev
原因是没有指定本地dev
分支与远程origin/dev
分支的链接,根据提示,设置dev
和origin/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分支上