zoukankan      html  css  js  c++  java
  • cicd 结合git的版本控制概要

    cicd 结合git的版本控制概要
    首先,不同项目不同团队git的规范和习惯会有区别
    使用原生git更自由和定制化,为了简单不少项目会选择git flow的方案
    使用git flow的,一方面是简化规范一些操作,避免可能因不熟悉git和多人操作的冲突,因为git flow是在git的一个受约束的环境和规范下使用git,分枝管理并不如git一样自由
    一般的简单项目的上线环境分为测试,预览,正式,再深入到灰度/金丝雀,ci/cd自动上线的话,需要规范好git branch/tag 和 测试/预览/正式的关系
    则项目的开发流程如下
    * 1 git flow feature start feature_01
    在develop分枝上新建feature_01分枝
    * 2 git commit -a -m "feature_01 finish"
    在feature_01分枝开发完成后提交更改
    * 3 git flow feature finish feature_01
    将feature_01分枝merge至develop分枝,cicd自动执行布署test运行环境
    * 4 git flow release start v0.1
    在develop上新建v0.1分枝,在这个分枝上可以再做一部分修改,但不建议这样操作。
    * 5 git commit -a -m "release_v0.1 finish"
    提交修改
    * 6 git flow release finish v0.1
    merge release_v0.1分枝至master,cicd自动执行布署preview运行环境
    发布为该次合并的结果创建tag 例如v0.1,cicd自动执行布署prod运行环境
    ---
    补充
    主要纠结在git flow和gitlab runner结合的切入点
    git flow 流程里分三类master develop tag
    develop对应test环境,通常都没有疑问
    默认git push会提交master分枝,而tag需要手动指定
    master分枝做为prod的话容易误操作,小型项目/单人维护的项目的版本控制没这么严格,太严格了反而低效,developer基本都有master操作权限。
    为避免误提交至master,因此把master做为preview环境,tag作为prod环境。
    也可以禁用developer的master权限,所有master在gitlab/github页面手动审核,也是种办法,这要根据个人/团队的习惯,项目规模的大小而定。
  • 相关阅读:
    jstl标签
    get和post
    try中的局部变量在finally中是找不到的。
    bzoj 4408: [Fjoi 2016]神秘数 数学 可持久化线段树 主席树
    ZOJ2112 BZOJ1901 Dynamic Rankings 树套树 带修改的区间第k小
    BZOJ 2120: 数颜色 带修改的莫队算法 树状数组套主席树
    POJ2104 K-th Number 不带修改的主席树 线段树
    POJ 2891 Strange Way to Express Integers 中国剩余定理 数论 exgcd
    POJ1151 Atlantis 水题 计算几何
    BZOJ 2333: [SCOI2011]棘手的操作 可并堆 左偏树 set
  • 原文地址:https://www.cnblogs.com/zihunqingxin/p/14459652.html
Copyright © 2011-2022 走看看