今天公司加入了很多新同事,对git管理和命令不熟悉,群里讨论了一番,决定简单整理一些东西,比较适合git新手,大神轻喷,下文有说的不对的地方还望指正。
下面先来一幅图:
先介绍一下几个分支
master:建立git仓库默认分支(也有称其为保护分支,可修改),通常只有master权限的人才能修改代码
develop:开发分支
release:预发布分支,提测用,基于develop的tag拉出(checkout以下相同含义)
feature:功能分支,开发完上线要先合并到develop,通过develop拉出release提测上线
hotfix:基于master分支当前线上tag拉出
下面说说几个分支都能干哪些事情
1、主要在开发分支上搞事情,需要单独开发的功能,基于develop拉出新分支feature。
2、feature需要合并到develop时,笔者建议在develop分支上也打tag,作为标记,因为时常遇到某一个feature分支的功能突然间在即将发布的版本不上了,这个时候可以找到这次合并的tag,从上一次提交从新拉出release分支。
3、release这个分支用于给测试提测使用,是确定了上线内容的分支,可以在上面改提测后的bug,达到上线水平时,要合并到master分支和develop分支。
4、master分支主分支,只能往这个分支上合并代码,每次合并后记得打tag,原则上不允许push代码
5、hotfix这个是紧急修复线上问题的分支,基于master分支当前线上的tag拉出,然后解决bug,达到上线要求后,要合并到master分支和develop分支。
这样整个代码库只需完整保留develop和master两个分支即可,其他分支在完成其任务时都可以删除。