• APP Git协作流程


    一、协作流程参照下图

    二、分支简介

    master分支:永远处于稳定状态,这个分支代码可以随时用来部署。不允许在该分支直接提交代码。
    develop分支:开发分支,包含了项目最新的功能和代码,所有开发都在develop上进行。一般情况下小的修改,不紧急上线直接在这个分支上提交代码。
    feature分支:如果要改的一个东西会有比较多的修改,或者改的东西影响会比较大,请从develop分支开出一个feature分支,分支名约定为feature/xxx
    release分支:来做发布前的准备,分支名约定为release/***
    hotfix分支:发现线上的代码(也就是 master)有 bug,但是这个时候我们的 develop 上的有些功能还没完成,还不能发布,这个时候我们可以从 master 分支上开出一个 hotfix 分支(记住:直接在 master 上提交代码是不允许的!),分支名约定为hotfix/xxx,在这个分支上修改完 bug 后需要把这个分支同时合并到 master 和 develop 分支

    三、具体的操作流程

    1、创建分支或者拉取远程仓库别人创建的分支

    //创建分支并提交到远程仓库
    git checkout -b feature/newFunction develop //创建分支并切换到feature/newFunction分支
    git push -u feature newFunction //第一次提交需要加-u,这样可以绑定本地和远程分支关系,之后push和pull不用再指定后面feature newFunction
    
    //拉取远程仓库别人创建的分支
    git fetch origin
    git branch -a //查看所有远程分支 git checkout
    -b otherCreateBranch origin/otherCreateBranch //otherCreateBranch是远程仓库别人创建的分支

    2、开发完新功能合并分支到develop

    git checktout develop
    //在没有冲突情况下使用git merge dev会触发Fast forward模式,它会自动合并并提交,合并后看不出来曾经做过合并
    //--no-ff会禁用Fast forward模式
    git merge --no-ff feature/newFunction

    3、合并完develop之后,进行测试,达到上线标准后,拉出需要release分支

    git checkout -b release/xxx develop

    4、release分支测试完并上线之后,合并回develop和master

    git checkout develop
    git merge --no-ff release/xxx
    
    git checkout master
    git merge --no-ff release/xxx

    5、如果线上出现bug,需要紧急修复,从master拉取分支

    git checkout -b hotfix/bug*** master //从master拉取分支

    6、bug修复完之后,合回develop和master,参考4

    四、使用技巧

    1、配置快捷命令

    git config --global alias.st status  //git status 简化 git st
    git config --global alias.co checkout //git checkout 简化 git co
    git config --global alias.ci commit //git checkout 简化 git ci
    git config --global alias.br branch //git checkout 简化 git br
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
  • 相关阅读:
    HTML基本知识
    几个常用的正则表达式
    C#操作文件
    传说中的WCF(3):多个协定
    传说中的WCF(2):服务协定的那些事儿
    查询表、存储过程、触发器的创建时间和最后修改时间
    SQL四舍五入及两种舍入
    自制 JS.format带分页索引
    js:字符串(string)转json
    $.each 和$(selector).each()的区别
  • 原文地址:https://www.cnblogs.com/hifelix/p/6029775.html
Copyright © 2020-2023  润新知