美文网首页
从SVN迁移至Git

从SVN迁移至Git

作者: wu_sphinx | 来源:发表于2015-06-14 23:16 被阅读282次

    公司的版本控制从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的代码管理真的很好用哦-)

    相关文章

      网友评论

          本文标题:从SVN迁移至Git

          本文链接:https://www.haomeiwen.com/subject/netsqttx.html