分支管理
- 分支不是越多越好,只求一个稳定的分支,即master不要轻易去更改
- 对应master要有一个开发者分支,保证mater分支的稳定性
- 所有的功能都在开发者分支上进行
- 在所有功能开发后新建发布分支(release)
- 上图上半部,只有master这条主线,其他功能分支只要开发完就去与mater融合,这样的操作容易使mater不稳定
- 上图下半部,在master的基本上创建了一个分支开发者,这样功能沿着开发者分着进行功能分支的创建,会多一道保险
具体操作
- 这里说一个背景,那就是我们有两条线,一条master分支,一条developer分支,我们都在developer分支上进行开发任务,此时线上有bug,那么就必须要对master进行修改,背景介绍完了,那么就开始做吧
- 首先为了解决这个bug我们创建hotfix分支,执行命令 git checkout -b hotfix,bug解决了需要赶快上线,那么执行合并操作,切换到master分支下执行 git merge hotfix,将hotfix合并到master中,此时master往前挪了一位与hotfix重合。此时分支hotfix也可以被删除了
- 回到我们的developer分支上,继续我们的功能开发,但是此时有个问题,现在的功能任务开发并没有包含master分支新修改的内容,此时有两个选择
- 要么切换到功能任务分支上执行git merge mater,将mater合并到功能任务分支上
- 要么等功能任务开发完成,切换到mater分支上执行git merge 功能分支,将功能分支合并到master上
- 合并冲突的出现,怎么处理?有时候不同分支对同一个文件的同一部分进行了修改,git就无法判断了,需要自己手动修改,head指的是所切换的分支的代码,====下面就是被合并到其他分支的代码
<<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53:index.html
参考:https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6