我司提交代码的流程

用过sourcetree,也用过命令行,有系统的学习过,但是在某些情况下还是一点懵逼;
有的到时候不要codeReview,所以几个人在一起直接merge一个dev分支就好了,但是后来发现如果多人开发还是要Pull Request的,所以就要用到了rebasemerge

简单描述下我司的工作流程

  • 1.开发分支为develop,总分支为master
  • 2.所有人开发都是依赖develop.
  • 3.做事情,基于develop拉出来一个分支,随意起名,我们叫做4.12_feature_addtab_wx
  • 4.将4.12_feature_addtab_wx完成后,提交到远程
  • 5.众人codeReview后同意即可mergedevelop
  • 6.如果此时没有冲突,点击merge即可(这个就是类似于githubPull Request)
  • 7.如果有冲突,那么回到sourcetree或者terminal,切换分支到develop,然后更新代码为最新即可
  • 8.切换分支到4.12_feature_addtab_wx,然后右键develop,选择rebase current change onto develop(基于develop分支,更新一下代码),如果遇到了冲突,直接解决就好了;
  • 9.解决完冲突,直接在Pull Request中直接点击merge即可;

总结:

我司提交代码的流程_第1张图片
rebase操作

没有冲突,就是merge,有了冲突,就是先rebase解决冲突,在merge合并分支

关于解决冲突可能出现的问题

1.解决完冲突,Mark Resolved一下

rebase解决完冲突之后,还是要提交一下的,否则sourcetreeterminal是不知道的,

我司提交代码的流程_第2张图片
有冲突,可以使用我自己的代码,或者他人的代码,如果直接点击了这二者其一,他都默认执行了Mark Resolved,如果是手动修改的,并且修改完毕,要记得,选择一下Mark Resolved

2.继续rebase

我司提交代码的流程_第3张图片
当所有的问题都解决,mark resovlved了,然后再去 continue rebase

3.可能会多次rebase

假设4.12_feature_addtab_wx上,我们commit了15次,每次都修改了WMBOrder这个类,那么我们rebasedevelop分支上,也修改了WMBOrder类,当我们要merge代码的时候,发现本地的develop分支不是最新的,所有区更新了一下,我们要拉新代码,然后基于developrebase一下,然后这时候,可能要合并15次,这个好像是每次都要修改,直到将我们的commit中所有develop有冲突的都要修改一边,比较麻烦.
所有尽量不要去rebase坏了,如果坏了,也没事,直接别删除合并前的两个分支就行,在重新rebase,慢慢再来一遍就行了

我司提交代码的流程_第4张图片
仔细看看合并的点,是一次新的提交,Merge pull request XXX
我司提交代码的流程_第5张图片
merge和rebase的区别

你可能感兴趣的:(我司提交代码的流程)