美文网首页
git的工作流程思考

git的工作流程思考

作者: mayufo | 来源:发表于2018-08-18 17:35 被阅读0次

    一直以来公司都是svn来进行版本控制,虽然svn的版本控制也可以说满足公司的日常需求,但是作为使用git的人来说,我真的裂墙安利git。

    无论是版本控制,分支管理,还是存储都更加合理,更加快速。

    为了以后升职加薪,为了早日实现git称霸天下的梦想,为了世界和平,我要琢磨一篇git工作流程,以备不时之需。

    image.png

    希望解决的问题

    1. 目前的开发都是在主分支上,没有分支的概念之说,容易造成冲突!!!
    2. 没有代码review的机制
    3. 每当开发同一个产品的另外版本的时候,只能重新复制一个出来,无法统一管理

    工作流程思考

    分支管理:每一个项目都要创建test, develop分支。

    master 是生产环境,当完成日常的feature开发,可以merge到master分支
    test分支上的代码用于日常测试,可能会存在bug
    develop是代码已经测试并且已经部署到开发调试环境

    1. 新创建个分支。
      如果是新的开发需求分支命名为 开发人员-feat-模块名字,如git checkout -b may-feat-login
      如果是修改bug,分支命名为开发人员-fix-模块名字,如git checkout -b may-fix-may-fix-login
    2. 修改代码,提交代码
      git commit调出编辑器,写多行信息
    <type>(<scope>): <subject> // 必须
    

    type: 提交类别
    feat:新功能(feature)
    fix:修补bug/ docs:文档(documentation)
    style: 格式(不影响代码运行的变动)
    refactor:重构(即不是新增功能,也不是修改bug的代码变动)
    test:增加测试
    chore:构建过程或辅助工具的变动

    image.png
    也可以配合工具 Commit message
    npm install -g commitizen  // 安装
    commitizen init cz-conventional-changelog --save --save-exact // 项目里运行
    git commit 换成 git cz
    

    为了commit的规范,自己也搜索了一圈,发现很多人在提交的时候使用Emoji标签,也是非常棒的
    emoji emoji 代码 commit 说明
    🎉 (庆祝) :tada: 初次提交
    ✨ (火花) :sparkles: 引入新功能
    🔖 (书签) :bookmark: 发行/版本标签
    🐛 (bug) :bug: 修复 bug
    🚑 (急救车) :ambulance: 重要补丁
    🌐 (地球) :globe_with_meridians: 国际化与本地化
    💄 (口红) :lipstick: 更新 UI 和样式文件
    🚨 (警车灯) :rotating_light: 移除 linter 警告
    🔧 (扳手) :wrench: 修改配置文件
    ➕ (加号) :heavy_plus_sign: 增加一个依赖
    ➖ (减号) :heavy_minus_sign: 减少一个依赖
    ⬆️ (上升箭头) :arrow_up: 升级依赖
    ⬇️ (下降箭头) :arrow_down: 降级依赖
    ⚡️ (闪电)
    🐎 (赛马) :zap:
    :racehorse: 提升性能
    📈 (上升趋势图) :chart_with_upwards_trend: 添加分析或跟踪代码
    🚀 (火箭) :rocket: 部署功能
    ✅ (白色复选框) :white_check_mark: 增加测试
    📝 (备忘录) :memo: 撰写文档
    🔨 (锤子) :hammer: 重大重构
    🎨 (调色板) :art: 改进代码结构/代码格式
    🔥 (火焰) :fire: 移除代码或文件
    ✏️ (铅笔) :pencil2: 修复 typo
    🚧 (施工) :construction: 工作进行中
    👷 (工人) :construction_worker: 添加 CI 构建系统
    💚 (绿心) :green_heart: 修复 CI 构建问题
    🔒 (锁) :lock: 修复安全问题
    🐳 (鲸鱼) :whale: Docker 相关工作
    🍎 (苹果) :apple: 修复 macOS 下的问题
    🐧 (企鹅) :penguin: 修复 Linux 下的问题
    🏁 (旗帜) :checked_flag: 修复 Windows 下的问题

    1. code reivew
      目前主流的code review 工具 Phabricator
      在commit中引入code review的机制,如果无法通过审核,需要重新修改代码,继续提交。直到通过提交
      最后再 git push

    2. 合并分支,将自己的产出may-feat-login分支的代码合并到master分支,再删除分支

    git checkout master // 切换到master分支
    git rebase may-feat-login  
    // 如果遇到冲突,解决冲突
    git add . // 解决冲突的代码重新加入缓存
    git rebase  --continue 
    git checkout -d may-feat-login // 删除分支
    
    1. 当遇到产品其他版本的开发的时候
      比如遇到产品专门为ios 手机定制的一块新功能的时候
      创建新分支,命名为 master-ios
    git checkout -b master-ios
    
    1. 当有其他通用的内容需要在多个版本代码修改的时候,
      比如对分支 may-feat-dateTime的功能,需求在master 和 master-ios上都能更新到
    git checkout master
    git rebase may-feat-dateTime
    // 解决冲突
    git rebase  --continue 
    
    git checkout master-ios
    git rebase may-feat-dateTime
    // 解决冲突
    git rebase  --continue 
    

    参考内容

    Commit message 和 Change log 编写指南
    Code Review 工具推荐 | Lifecycle

    相关文章

      网友评论

          本文标题:git的工作流程思考

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