用过sourcetree
,也用过命令行,有系统的学习过,但是在某些情况下还是一点懵逼;
有的到时候不要codeReview
,所以几个人在一起直接merge
一个dev
分支就好了,但是后来发现如果多人开发还是要Pull Request
的,所以就要用到了rebase
和merge
简单描述下我司的工作流程
- 1.开发分支为
develop
,总分支为master
- 2.所有人开发都是依赖
develop
. - 3.做事情,基于
develop
拉出来一个分支,随意起名,我们叫做4.12_feature_addtab_wx
- 4.将
4.12_feature_addtab_wx
完成后,提交到远程 - 5.众人
codeReview
后同意即可merge
到develop
- 6.如果此时没有冲突,点击
merge
即可(这个就是类似于github
的Pull Request
) - 7.如果有冲突,那么回到
sourcetree
或者terminal
,切换分支到develop
,然后更新代码为最新即可 - 8.切换分支到
4.12_feature_addtab_wx
,然后右键develop
,选择rebase current change onto develop
(基于develop
分支,更新一下代码),如果遇到了冲突,直接解决就好了; - 9.解决完冲突,直接在
Pull Request
中直接点击merge
即可;
总结:
rebase操作没有冲突,就是merge
,有了冲突,就是先rebase
解决冲突,在merge
合并分支
关于解决冲突可能出现的问题
1.解决完冲突,Mark Resolved
一下
rebase
解决完冲突之后,还是要提交一下的,否则sourcetree
或terminal
是不知道的,
2.继续rebase
当所有的问题都解决,mark resovlved了,然后再去 continue rebase
3.可能会多次rebase
假设4.12_feature_addtab_wx
上,我们commit
了15次,每次都修改了WMBOrder
这个类,那么我们rebase
的develop
分支上,也修改了WMBOrder
类,当我们要merge
代码的时候,发现本地的develop
分支不是最新的,所有区更新了一下,我们要拉新代码,然后基于develop
去rebase
一下,然后这时候,可能要合并15次,这个好像是每次都要修改,直到将我们的commit
中所有develop
有冲突的都要修改一边,比较麻烦.
所有尽量不要去rebase
坏了,如果坏了,也没事,直接别删除合并前的两个分支就行,在重新rebase
,慢慢再来一遍就行了
网友评论