从SVN迁移至Git

公司的版本控制从svn迁移至git也有差不多快一个月了,每每在代码合并 这个问题上,屡屡会出出问题,总结起来,自己在开发的时候,还是svn时代的那套思想,集中式版本控制,在分布式的路上还属步履蹒跚。
根据阮一峰的日志--Git分支管理策略,作了一些总结。
目前对Git版本控制的使用, 并不是特别合理与顺利,都是在熟悉中,最重要的还是接受分支开发这种理念,特别感谢伟大的林纳斯·托瓦兹
一、主分支Master
首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。

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的代码管理真的很好用哦-)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git分支管理 master:主分支,当前分支上的代码随时可以直接发布,并且只能通过Pull Request从其他...
    UEUEO阅读 9,729评论 5 33
  • 纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注 1 Git 分支 - 分支简介 有人把 ...
    尘世不扰阅读 721评论 0 3
  • 喇荣藏文的意思是,来了就不想走的地方。 喇荣的全称:甘孜藏族自治州色达喇荣五明佛教大学。是此番我们进藏朝圣的重要目...
    芳香行者Sunny阅读 1,907评论 2 1
  • 今天儿子期末考试第三天。 一早,5点未到,我是被儿子房里的声音惊醒的。这种警觉是从儿子7岁独自睡自己房间开始的,第...
    苇絮轻扬阅读 224评论 2 7
  • 文I 凯锋 初见《皮囊》,还是在大学班级群里,班长极力推荐,让大家有时间看下,当时我还发了一个鄙视的表情。没想到的...
    凯锋公爵阅读 513评论 0 0