• Git之GitFlow工作流


    一、 GitFlow 介绍

    1.1 什么是 GitFlow

    GitFlow 是一种 Git 工作流,它是团队成员遵守的一种代码管理方案 。

    1.2 GitFlow 常用分支说明

    分支名称 分支说明
    Production 生产分支,即 Master分支。只能从其他分支合并,不能直接修改
    Release 发布分支,基于 Develop 分支创建,待发布完成后合并到 Develop 和 Production 分支去
    Develop 主开发分支,包含所有要发布到下一个 Release 的代码,该分支主要合并其他分支内容
    Feature 新功能分支,基于 Develop 分支创建,开发新功能,待开发完毕合并至 Develop 分支
    Hotfix 修复分支,基于 Production 分支创建,待修复完成后合并到 Develop 和 Production 分支去,同时在 Master 上打一个tag

    1.3 GitFlow 工作流程

    二、GitFlow 实践

    2.1 创建 develop 分支

    # 创建 develop 分支 
    git branch develop
    # 将 develop 分支推送到远端仓库
    git push -u origin develop    
    

    2.2 开始新的 Feature

    # 通过develop新建feaeure分支
    git checkout -b Feature分支名 develop
    # 可选,将分支推送到远端仓库
    git push -u origin Feature分支名     
    

    2.3 编辑 Feature 分支

    # 查看状态
    git status
    # 添加提交内容
    git add XXXfile
    # 提交    
    git commit    
    

    2.4 完成 Feature 分支

    # 拉取远端仓库 develop 分支合并到本地 develop 分支
    git pull origin develop
    # 切换到 develop 分支     
    git checkout develop
    # 将 Feature 分支合并到 develop 分支    
    	# --no-ff:不使用 fast-forward 方式合并,保留分支的 commit 历史
    	# --squash:使用 squash 方式合并,把多次分支 commit 历史压缩为一次    
    git merge --no-ff Feature分支名
    # 将分支推送远端仓库 
    git push origin develop
    # 删除 Feature分支
    git branch -d Feature分支名
    

    2.5 开始Relase

    # 创建 Relase 分支并切换到 Relase 分支上
    git checkout -b release-0.1.0 develop
    

    2.6 完成Release

    # 切换到 master 分支上
    git checkout master
    # 合并 release-0.1.0 分支    
    git merge --no-ff release-0.1.0    
    # 推送到远端仓库
    git push
    # 切换到 develop 分支上    
    git checkout develop
    # 合并 release-0.1.0 分支   
    git merge --no-ff release-0.1.0
    # 推送到远端仓库   
    git push
    # 删除 release-0.1.0 分支 
    git branch -d release-0.1.0
    

    2.7 开始Hotfix

    # 创建 hotfix 分支并切换到 hotfix 分支上
    git checkout -b hotfix-0.1.1 master
    

    2.8 完成Hotfix

    # 切换到 master 分支
    git checkout master
    # 合并 hotfix-0.1.1 分支
    git merge --no-ff hotfix-0.1.1
    # 推送到远端仓库
    git push
    # 切换到 develop 分支
    git checkout develop
    # 合并 hotfix-0.1.1 分支
    git merge --no-ff hotfix-0.1.1
    # 推送到远端仓库
    git push
    # 删除 release-0.1.0 分支    
    git branch -d hotfix-0.1.1
    # 为主分支打上版本标签
    git tag -a v0.1.1 master
    # 将标签推送到远端仓库  
    git push --tags
    

    三、 GitFlow 工具推荐

    3.1 Git flow script(命令行)

    初始化:

    git flow init
    

    开始新Feature:

    git flow feature start MYFEATURE
    

    Publish一个Feature(也就是push到远程):

    git flow feature publish MYFEATURE
    

    获取Publish的Feature:

    git flow feature pull origin MYFEATURE
    

    完成一个Feature:

    git flow feature finish MYFEATURE
    

    开始一个Release:

    git flow release start RELEASE [BASE]
    

    Publish一个Release:

    git flow release publish RELEASE
    

    发布Release:

    git flow release finish RELEASE
    git push --tags     
    

    开始一个Hotfix:

    git flow hotfix start VERSION [BASENAME]
    

    发布一个Hotfix:

    git flow hotfix finish VERSION
    

    3.2 SourceTree (图形化)

  • 相关阅读:
    GYM 101128 J.Saint John Festival(求凸包是否包含点)
    GYM 101128 F.Landscaping(网络流)
    ACM ICPC 2017 Warmup Contest 2 I. Integral Polygons(计算几何+动态规划)
    ACM ICPC 2017 Warmup Contest 1 A. Artwork(逆向+dfs+并查集)
    51nod 1225 余数之和(数论)
    51nod 1397 最大二分图(图论+思维)
    51nod 1444 破坏道路(任意两点最短路径)
    网络流24题——孤岛营救问题(状压+分层图)
    ACM 竞赛高校联盟 练习赛 第六场 光头强的强迫症(线段树)
    bzoj1577 [USACO09FEB] Fair Shuttle
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/11976296.html
Copyright © 2020-2023  润新知