git分支开发rebase实践
之前在进行分支开发的时候往往都使用merge,提交记录比较混乱。这里介绍一下使用rebase进行分支开发的实践。
- 1、公司的项目一般都是一个
main分支,代表线上环境。一个develop分支,是开发主分支。如果要开发新功能,一般是在develop分支的基础上切出一个feature分支。
1 | 切换到develop分支 |
- 2、在
feature/test分支上进行代码开发,形成多次commit记录(注:开发过程中不要将develop分支合并到feature/test分支,开发完毕后再统一处理)
1 | touch index.js |
- 3、开发完毕并测试通过以后,首先使用
rebase整理本地分支代码commit记录
1 | 使用rebase交互式的编辑最近4次提交记录 |
弹出一个git-rebase-todo的文件,选择要保留的commit记录。
修改如下,index1和2合并为一条commit。index3和4合并为一条commit。后面commit message信息先不改,编辑完保存然后关闭当前文件,会进行下一步合并后的commit的message修改
编辑器打开了第一个COMMIT_EDITMSG的文件,这是让你编写index1 和 index2合并后的commit信息
编辑完毕后,点击保存
关闭当前页面,编辑器弹出了index3 和 index4合并commit的message信息填写界面。同上,编辑保存关闭即可
全部编辑完毕后控制台弹出如下信息,代表rebase成功
执行git log --graph可以看待一条直线的记录。很舒服
- 4、在
feature/test分支的开发过程中,develop分支不可能一直不变,有些成员可能会直接基于develop分支进行开发和push。也有别的分支pull request合并到develop分支。因此需要切换到的develop分支,拉取最新代码。然后切换到feature/test分支,进行rebase
1 | git checkout develop |
- 5、由于之前为了测试已经把代码推送到
origin,然后对本地又做了rebase。因此执行git push orign feature/test会报错。应该执行git push --force origin feature/test强制推送(注意:只有在自己的分支、单人开发的分支上才能使用 –force 强制推送)
1 | git push --force origin feature/test |
github上pull request到develop分支。代码进行review。如果仍然有冲突(reivew时间过长,或者刚好有人push或者merge新的代码到develop分支),需要重新执行 4、5 两步。review通过以后选择rebase and merge合并 pr。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 陈荷西!
评论
