公司的版本控制从svn迁移至git也有差不多快一个月了,每每在代码合并 这个问题上,屡屡会出出问题,总结起来,自己在开发的时候,还是svn时代的那套思想,集中式版本控制,在分布式的路上还属步履蹒跚。
根据阮一峰的日志--Git分支管理策略,作了一些总结。
目前对Git版本控制的使用, 并不是特别合理与顺利,都是在熟悉中,最重要的还是接受分支开发这种理念,特别感谢伟大的林纳斯·托瓦兹。
一、主分支Master
首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。
对于我们现在的开发流程来说,这就是线上版本,线上版本应该是bug最少化,代码精简化。但就目前的开发流程而言,hotfix一天上好几次,主版本一天也要更新好几次,并不是很稳定,不过这似乎是互联网公司的通病。
二、开发分支Develop
主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。 develop
这个版本其实有许多脏代码,各种功能的试用,代码的测试,都可以在这个版本上进行。
就在Master分支上,对Develop分支进行"合并"(merge)。
创建Develp的命令为:
git checkout -b develop master
# 切换到Master分支
git checkout master
# 对Develop分支进行合并
git merge --no-ff develop
功能在Develop上开发,有需要合并到Mater,对于周期性的迭代功能,先拉个develop_v1,对于合作开发人员,每个人以develop_v1为基础开自己的分支,开发自测好再合并一处由测试人员完成测试。
这里稍微解释一下,上一条命令的--no-ff参数是什么意思。默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。
保证版本演进的清晰三、修补bug分支hotfix
最后一种是修补bug分支。软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。
修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用hotfix-日期的形式。目前每天要上正式的代码都是有的hotfix,大部分是bug修复,小部分是功能更新,这么也还算合理。
ps:(pycharm的代码管理真的很好用哦-)
网友评论