现有一般的公司项目均使用git(大多数是gitLab)管理。

开发组

我们的项目都要建立在 开发组的名下 (git.xxcompany.com/xxgroup),除需要公司内部开源的项目,都必须设置为 私有(private) ,只对团队内部开源。

ssh key

使用前建议大家在本地用自己的公司邮箱配置ssh key,并讲ssh key 添加到git系统的个人页,(方法如下: https://segmentfault.com/a/1190000002645623) 
虽然有一些公司的git 仓库不使用ssh也能正常的clone,但考虑到后续的一些内部工具的权限校验,建议配置ssh key

分支管理

因为前端开发不走终端的发版模式,可以随时上线,因此分支管理显得十分重要。 
默认主线为master (永远与线上代码一致),我们采用现在大多数公司使用的feature开发模式: 
1、接到需求后以线上(master)为基准,创建feature 分支命名规则: feature_xxx。 
以xxx需求为例

$ git checkout master
$ git checkout -b feature_xxx

2、开发阶段,完成需求 
3、提测前,拿到最新的master分支合并到feature_xxx,将feature_xxx的代码发到测试环境。

$ git checkout master
$ git pull
$ git checkout feature_xxx
$ git merge master

4、每一轮提测包括集成测试和上线前重复3,保证我们的feature兼容线上。 
5、将feature的代码上线,即:以feature_xxx为基准打一个tag,将tag上线。 
6、线上回测没有问题后,将feature_xxx合入master,然后除feature_xxx

$ git checkout master
$ git merge feature_xxx
$ git branch -D feature_xxx
$ git push origin :feature_xxx //(注意“:”后面没有空格)

这样做的原因是永远以一个 正确的基准 开始新需求的开发,也永远将 正确的分支 合并到主线可以形成一个开发 闭环 ,这种方法要比commit打分支更便于理解和操作。可以应对 多人多需求并发场景

最主要的是应对在开发一个长期需求(feature_long)的过程中,插入另一个短期需求或线上bug(feature_short),长线需求可以在短期需求上线后(短期需求feature_short 合并merge 进master后,删除feature_short),将master 合并进feature_long,然后feature_long继续开发。

多人合作开发

我们会遇到对人开发同一个需求,比如前后端两个人,请在 开发前约定 分支名,并由一个人创建好。

git 分支管理方案的更多相关文章

  1. GIT分支管理模型

    GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...

  2. Git 分支管理是一门艺术

    转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分 ...

  3. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

  4. Git分支管理[三]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git分支管理命令 git branch #创建分支 git branch -v # ...

  5. Git—分支管理

    Git—分支管理 分支学习:branch称为分支,默认仅有一个名为master的分支.一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支. branch相关常用 ...

  6. [转载]理解 Git 分支管理最佳实践

    原文 理解 Git 分支管理最佳实践 Git 分支有哪些 在进行分支管理讲解之前,我们先来对分支进行一个简单的分类,并明确每一类分支的用途. 分支分类 根据生命周期区分 主分支:master,deve ...

  7. 02: git分支管理

    目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...

  8. git 分支管理——多人协作

    git 分支管理--多人协作 一般一个项目有一个master主分支,还有一个develop开发分支.主要是在develop分支上协作开发,然后merge合并到master主分支上. 当从远程仓库克隆时 ...

  9. Git分支管理及合并

    Git分支管理   建立分支 git branch [name]   切换到分支 git checkout [name]   查看有哪些分支 git branch   比较分支 git diff [b ...

随机推荐

  1. ssm框架文件上传

    有两种方法 导包和上传配置自己搞: 第一种: 上传单个文件: @RequestMapping("/addfile1") public String addfile(@Request ...

  2. 解决JVM内存溢出问题

    今天遇到了一个问题,当我在增加配置文件(*.xml)内容的时候,重新启动tomcat6时,控制台报错:java.lang.StackOverflowError: 即,栈溢出错误. 内存溢出,即程序运行 ...

  3. flex固定底部栏

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 终止ajax请求

    在做搜索功能时,文本框输入文本就得请求一次数据,如果上一次的请求还没回又请求了就导致数据错误和无用的数据请求. 我们需要输入文本时候判断上一次的ajax请求是否完毕,若还没完毕就终止本次请求. 对于j ...

  5. Luogu1261: 服务器储存信息问题

    题面 传送门 Sol 我们可以考虑每种\(rank\)的点\(u\)会被哪些点\(v\)感兴趣 如果\(dis[u][v]<\)所有满足\(rank\)大于\(rank[u]\)的点到\(v\) ...

  6. asp.net core 错误定位 & vs2017 远程调试部署在centos上的asp.net core程序

        前言 程序运行中会出现各种BUG. 排除BUG有三种方式. 一.访问页面直接报错误信息 出于安全,服务器是关闭这个功能的.在centos上可以用 命令设置环境变量来解决:   export A ...

  7. input框中如何添加搜索

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Java中由Calendar类获取的月、天和小时的简单处理

    在Java中,Calendar是日期处理的一个重要的类.但是,我们使用Calendar获取的月份,天,小时等可能需要进行简单的处理才能满足我们的需要.比如,月份范围是0-11,而我们可能需要的是1-1 ...

  9. 【Udacity】线性回归方程 Regression

    Concept in English Coding Portion 评估回归的性能指标--R平方指标 比较分类和回归 Continuous supervised learning 连续变量监督学习 R ...

  10. javax.swing.JComponent 调用顺序

    网上截取的,感觉挺有用,记录下来. http://bbs.csdn.net/topics/310041707 java swing 感觉好复杂啊…………一点都不想用但是作业要用到 >_<; ...