最近发生在自己身上的一件矬事儿,一不小心把matser上别人的代码给冲掉了,事后追溯了下原因。
1、准备三个分支,分别从master拉取 realease/v1.0分支 和 realease/bugfix 分支,再从realease/v1.0 分支拉取feature分支,如下:
2、切换到realease/bugfix分支,分别对其中两个文件进行修改,并且commit push 两次
3、将realease/bugfix分支合并到 master
4、将master 合并到 realease/v1.0上,此时realease/v1.0代码和release/bugfix分支是一致的。
5、修改feature/v1/0 中的DemoController文件,commit push
6、将master 合并到feature/v1.0上,此时会提示冲突,解决冲突后,此时feature/v1.0会有一些待commit的合并文件,而此时我又天真的revert了一下,恢复到feature/v1.0第一次提交后的状态
7、继续修改其它文件,完成feature/v1.0的第二次commit ,然后push
8、将远程feature/1.0的代码往realease/1.0合并,因为两者都刚刚把master往本分支合过代码,所以不会冲突,此时realeas/v1.0分支的代码已经和feature/1.0保持一直
9、而后realease/1.0开发完成,将realease/1.0的代码合并到mater,同样此时也不会冲突,最后master中的代码顺利变成了跟feature/1.0一致,而整个merge过程中并无冲突,所以我也没察觉到已经将release/bugfix上的代码冲掉。