在多人开发的项目中,通常会有 master、dev、test 分支,每一个分支的做用也是不同的。master 是用于线上环境,个别负责人才有合并权限的;dev 用于开发环境;test 用于测试环境。通常的合并流程是dev→test→master。可是,若是多我的同时在一个分支如 test 分支上写代码,有的代码要上线,有的之后才上,这样就会致使不上线的代码也会被合并到 master 上
php
因此,开发新功能的时候通常会在最新的master 分支切出一个分支来开发。git
最近在一个项目新增功能,因而在 master 切了一个分支进行开发,分支就叫add_feature吧。在把代码合并到 master 分支的时候,遇到一个问题,显示“在这个合并请求的源分支中,当前没有任何更改”(Currently there are no changes in this merge request's source branch.)我就很奇怪,明明没有提交合并请求过,master 怎么会有个人代码呢?而后我在 master 分支上git log,发现有个人提交记录,觉得 master 分支上已经有个人代码了。因而把合并请求关闭了。api
结果 master上线以后,我调了一下个人代码涉及到的 api 接口,竟然404了。在 add_feature上写好代码后,我会把代码合并到 test,而后部署到测试环境进行测试。我猜想有人在 直接在test 分支上开发,须要上线代码,发现 test 分支掺杂着个人代码,因而把个人代码删除,而后合并到 maseter,结果 master 里有个人 commit,致使我没法将 add_feature 合并到 master 分支。函数
为简化步骤,只建立 master、test、add_feature 分支。测试
多人合做不要直接在 test 分支上开发,若是已经开发了,也不要把别人的代码删掉,注释掉就行了。
this
本人仍是新手,不了解这内部的原理是什么。也有可能个人这些步骤出问题了,若是有不对的地方,但愿大佬们可以指出。谢谢你们。3d
写此文仅以记录开发中遇到的问题。code
原文连接cdn