把dev分支上1100+commit合并到test分支,其中包含不同时间段的50多次merge,真是一次令人难忘且社死的回忆。
Git的使用场景
Git是一个分布式版本控制系统( Version Control System, 也有一说CVS),最常用的场景是多人合作开发,可以提供便捷的代码合并、回滚等功能。简单说就是可以为每个人提供干净的代码开发环境,并且能够方便地将每个人的修改合并。
分支及使用方式
分支是git的重要特性,通过新建分支与分支合并,可以在不影响原有代码的情况下便捷地并发开发新功能或修复bug。常见的场景为:master分支为经过测试的完整代码,可以直接对外发布;基于master新建dev分支,在dev分支上开发新功能,测试无误后合并至master分支;如果出现bug,可以从dev或者master上新建fix分支,修复bug并通过测试后,合并至dev或者master上;合作开发的场景下,可以从master分别新建dev-a、dev-b等分支,分别由a、b来开发,当开发完成后合并到master分支。
在上述场景中,新建分支最重要的一层意义是,在独立的分支上开发,既不会影响原有的分支,同时也不会将其他的代码变动引入自己的分支,从而保证一个干净的开发环境。
Git分支的使用原则
- 开发新功能一定从master分支或者稳定的分支起,新建或者保持一个独立的分支(如dev-1)作为开发环境;
- 测试时可以将该分支合并(Merge)到公共的测试分支上,在测试分支上测试,一定不能把测试分支合并到开发分支上(会引入别人开发的尚未经过测试的不稳定代码);
- 发布时将该开发分支合并到Master分支。
上述三条是为了保证仅有经过测试的可靠代码被加入到稳定的发布代码中。
比较常见的开发过程可以是:
sequenceDiagram
master ->> + dev-1 : "新建分支"
master ->> + dev-2 : "新建分支"
note over dev-2 : "功能开发-2"
note over dev-1 : "功能开发-1"
dev-2 ->> - test : "合并代码"
dev-1 ->> - test : "合并代码"
note over test: "测试"
test ->> master: "合并代码"
note over master: "发布"