Skip to main content

微信小程序开发-Git协作

前言

上一篇章我们讲解了微信小程序开发的准备工作,但是在日常开发中,我们肯定不是一个人单独开发,而是团队合作开发。但是问题是,当我们多个人共同开发一个项目时,怎么把大家的合起来呢?

是这样吗?

串行工作:每个人负责一个模块,在这个人书写自己的模块时,其他人闲着,在这个人写好代码后,把代码打包,压缩包发送给下一个人。
并行工作:多人同时进行编码,写好之后进行合并。

你平时是怎么操作的呢?实际上,显然是并行工作的效率高,但是怎么达到这个目的呢?答案就是,代码托管。我们将代码放在某个平台的仓库里上,每个协作者在仓库中创建一个属于自己的分支(branch),并将代码拷贝一份副本在本地,在本地进行自己部分的编码和测试工作,在编码完成后,把这个工程推送(Push)到仓库中自己的分支里,并向主分支(main)发起合并请求(pull request),在管理员审核过后,就可以自动比较二者不一样的地方,进行合并(Merge)。

举个栗子

比如,老师新出了一张试卷,但是老师不想自己得到答案,因此她安排A、B、C三位学霸来做这套试卷。分别将这三个同学的试卷记为a、b、c。假设老师那里有一张空白试卷m。那么老师就是一个仓库。这张试卷m就是主分支(branch main),试卷a、b、c就是另外三个子分支。老师安排A同学做选择题,B同学做填空题,C做大题,在A做完选择题后,他将卷子交给老师(这叫提交合并请求),老师看了之后觉得没问题,就把A的答案誊抄到空白卷m上(这叫合并),B做完填空题后,手比较痒,就另外做了选择题,他也把卷子交给老师,老师看了之后,发现B的选择题答案和A的不一样(这叫产生了冲突),老师经过仔细判断之后发现A写的是对的,就保留A的选择题答案,忽略B的选择题答案(这叫解决冲突),然后将B的填空题合并上去。C做完大题之后交给老师,老师经过审核发现没有冲突的地方,因此也把C的试卷合并到m中。


我们可以得出以下结论:

  1. 总有人来扮演老师的角色,负责审核和解决冲突。
  2. 做题时A、B、C三位协作者可以同时做试卷,不受其他人影响。
tip

建议好好掌握这一技能,版本管理是程序员必备的技能之一。

微信开发者代码管理

进入微信开发者代码管理,使用微信登入。
点击-创建项目。
1656487766997.png
为小程序命名。可以先设置为私有。 image.png
创建成功。
image.png
复制上面那一串HTTPS URL。
在微信开发工具右上角点击版本管理。
1656488029563.png
初始化Git仓库。
image.png
点击设置-添加远程仓库。
1656488146508.png
image.png
网络与认证中选择添加用户名和密码。
image.png
在微信代码管理平台中设置密码和用户名。
image.png
填到IDE中。
image.png
然后,选择push,将现在的代码上传到代码管理平台。
1656488443112.jpg
上传成功后,代码管理平台出现了已经上传的代码。
image.png

不同成员创建不同分支

除项目管理员以外,其他开发者均不允许直接推送到主要分支,而应该推送到另外的分支,然后提交合并。这里建议所有成员均建一个自己的分支,每次自己的代码编写好后将代码推送到自己的分支,然后再提交合并请求。
下面将讲解团队成员推送代码和提交合并的过程。
拉取
1656489958556.png
这样有利于把别人的修改拉到自己本地的代码中。
勾选修改,查看这些修改的状态。 image.png
如果这些修改前面并没有出现Conflict(黄色的C),冲突的字样,那么表示可以正常提交合并,否则,请先处理冲突。
在下面添加修改评论,然后提交。
1656489217658.png
然后推送代码。
第一次推送,请新建一个分支,之后的提交就提交到这个分支即可。
image.png
可以看到,已经出现了我们新的分支及其代码。
1656489419386.png

提交合并请求

在上面把自己的代码上传后,就可以添加合并请求了。 1656489473350.jpg
选择将自己的分支合并到master分支。
1656489545823.png
然后比较两个分支
填写相关信息,将代码分配给管理员审核。
1656489662505.png
然后选择提交,合并会被阻止,因为管理员还没同意。
image.png 管理员添加评审意见。
image.png
就可以正常合并啦!


至此,这一章节也结束了。

注意

冲突往往难以避免,但是先记得一个准则,写之前先拉取再推送。