1.集中式工作流

适用人群:开发小团队(4-5人),习惯使用SVN工具的小团队。

工作方式:团队组长创建远程仓库,创建一个master分支,组员可读可写。

每个开发人员都git clone远程仓库到本地仓库,在master分支上开发。

每次开发都要git pull更新到远程仓库的master分支版本。

每次开发完成就git commit到本地仓库, 接着git push到远程仓库。

缺点:忘了git push,一直会提交到本地仓库,没有推送到远程仓库。

忘了git pull,导致本地仓库与中央仓库不一致,发生文件冲突。

大量操作git pull,导致增加git分支合并次数,增加了git变基次数,降低了git的性能。

2.分支工作流

适用人群:开发中团队(10人以上,100人以下),熟悉Git分支的团队。

工作方式:团队组长创建远程仓库,创建一个master分支,组员可读不可写。

每个开发人员都git clone远程仓库到本地仓库。

每个开发人员创建自己的feature分支,在feature分支上开发。(记住,feature分支是基于master分支)

每个开发人员每次开发完成就git commit到本地仓库中自己的feature分支, 接着git push到远程仓库。

通过pull request提醒团队组长,浏览组员提交feature分支。

组长把feature分支拉下来并合并到自己本地仓库的master分支上测试。

组长测试feature分支通过之后,由组长负责把feature分支合并到远程仓库的master分支上。

组长在远程仓库把合并过的feature分支删除。

组员在本地仓库把合并过的feature分支删除。

组员将本地仓库分支切换为master分支,然后git pull将本地仓库的master分支更新到远程仓库的master分支版本。

缺点:增加团队组长的工作量。

增加团队组员提交步骤。

PS:Pull Request作用是可以让其他组员或组长可以查看你的代码,并可以提出代码修改意见或者讨论。

3.Gitflow工作流(多分支工作流)

适用人群:开发团队(100人以上),熟悉Git分支的团队。

工作方式:项目维护者创建项目维护者的远程仓库,创建master分支与develop分支,贡献者可读不可写。

每个贡献者git clone远程仓库中的develop分支到本地仓库。(记住,develop分支相当于master的分支,包括功能开发,修改,测试。master分支相当于最终分支)

每个贡献者在本地仓库创建自己的feature分支,在feature分支上开发。

在feature分支又可以创建多个feature分支,继续开发项目。

每个贡献者每次开发完成就git commit到本地仓库中自己的feature分支, 接着git push到远程仓库。

通过pull request提醒项目维护者,浏览贡献者提交feature分支。

项目维护者把feature分支拉下来并合并到自己本地仓库的develop分支上测试。

组长测试feature分支通过之后,由组长负责把feature分支合并到远程仓库的develop分支上。

项目维护者会release分支上git tag打上版本号。

项目维护者可以从develop分支创建release分支,接着把release分支合并到master分支上,同时master分支同步到develop分支。

项目维护者在远程仓库把合并过的feature分支删除。

每个贡献者在本地仓库把合并过的feature分支删除。

每个贡献者将本地仓库分支切换为develop分支,然后git pull将本地仓库的master分支更新到远程仓库的develop分支版本。

PS:Gitflow工作流是Vincent Driessen工程师提出的多分支工作流。

4.分叉工作流(分布式仓库工作流)

适用人群:开发团队(1000以上),熟悉Git分支的团队。

工作方式:主项目维护者创建主项目维护者的远程仓库,创建一个master分支,从项目维护者可读不可写。

从项目维护者通过fork主项目维护者的远程仓库的副本到自己的远程仓库,包括master分支。(记住,从项目维护者的远程仓库独立于主项目维护者的远程仓库)

从项目维护者git clone主项目维护者的远程仓库的副本到本地仓库。

从项目维护者创建自己的feature分支,在feature分支上开发。

从项目维护者每次开发完成就git commit到本地仓库中自己的feature分支, 接着git push到远程仓库。

通过pull request从项目维护者合并自己feature分支到从项目维护者的远程仓库的master分支上。

从项目维护者在远程仓库把合并过的feature分支删除。

从项目维护者在本地仓库把合并过的feature分支删除。

从项目维护者在远程仓库通过pull request向主项目维护者的远程仓库的推送。

主项目维护者通过pull request获取从项目维护者的远程仓库的推送。

主项目维护者进行从项目维护者的远程仓库代码审查,测试。

主项目维护者确认无误后,可以直接合并到主项目维护者的远程仓库。

转载于:https://www.cnblogs.com/Sroot/p/9560548.html

Git上手:四种常见的Git协同工作方式相关推荐

  1. 四种常见的Git工作流

    在这篇文章中,我们将会讨论最受Git用户欢迎的几种分支工作流程,您可以选择最适合自己的方式. Git Flow Git工作流是最广为人知的工作流.由Vincent Driessen 在2010年所发明 ...

  2. 浅谈四种常见的agv导航方式及各自的优缺点

    了解过AGV小车的朋友都知道,agv小车也叫作自动搬运车.搬运机器人等,agv小车主要是通过电磁.光学或其它自动导引装置,能够实现自主规划线路自动行驶的一个过程,是一种具有安全性高以及拥有各种搭载功能 ...

  3. 四种常见NLP框架使用总结

    作者:哈工大SCIR 狄东林 刘元兴 朱庆福 胡景雯 引言 随着人工智能的发展,越来越多深度学习框架如雨后春笋般涌现,例如PyTorch.TensorFlow.Keras.MXNet.Theano和P ...

  4. 最新开源LiDAR数据集LSOOD:四种常见的室外物体分类

    点云PCL免费知识星球,点云论文速读. 标题:最新开源LiDAR数据集LSOOD:四种常见的室外物体分类 作者:Y Tian 来源:https://github.com/Tian-Yifei/LSOO ...

  5. 移动设计需避免四种常见的用户体验失败

    为什么80%的码农都做不了架构师?>>>    此文是伊甸网转载移动设计顾问 Mariya Yao 的文章. 2012 年移动应用的下载量超过 300 亿,可是智能手机用户平均每周会 ...

  6. (转载)四种常见的 POST 提交数据方式

    转载地址:https://imququ.com/post/four-ways-to-post-data-in-http.html 四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HT ...

  7. application/json 四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式   HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 ...

  8. 四种常见的 POST 提交数据方式对应的content-type取值

    做前后端分离一般都有第3中 , 第一种 基本上jquery那年代用的了 第2种在需要传文件时用的 https://www.cnblogs.com/wushifeng/p/6707248.html 四种 ...

  9. JAVA对象JSON数据互相转换的四种常见情况

    这篇文章主要介绍了JAVA对象JSON数据互相转换的四种常见情况,需要的朋友可以参考下 1. 把java 对象列表转换为json对象数组,并转为字符串 复制代码代码如下:     JSONArray ...

最新文章

  1. 机器学习Basics-第十一期-循环神经网络RNN
  2. TStringList 常用操作
  3. 【模板】RMQ问题—st表实现
  4. LeetCode - Add Binary
  5. 以新ICT构建全联接的电力物联网,迈入能源智能时代
  6. 云炬创业政策学习笔记20210106
  7. timestamp 字段
  8. shell 脚本中while 循环只执行一次的问题
  9. php.exe占用资源过大,记录一次php占用系统资源过高的问题
  10. 高性能HTTP加速器Varnish(安装配置篇)
  11. js获取url传递参数
  12. archlinux安装mysql_在Arch Linux中安装MySQL
  13. ie8打完补丁重启报错
  14. SpringMVC运行原理
  15. Securing DevOps 免积分下载
  16. 华为锁屏后微信网络连接服务器,华为P30 Pro锁屏息屏状态下微信收不到信息,显示网络不可用...
  17. matlab矩阵怎么进行相加,matlab矩阵如何运算相加
  18. mysql数据库的用户是什么_mysql 数据库用户管理
  19. IOT连接阿里云(一):调试MQTT通路
  20. 关于“未使用GUID分区表”无法安装的解决方案

热门文章

  1. CVE-2021-30116: Kaseya VSA 远程代码执行漏洞
  2. IPSec隧道配置案例(手动模式)
  3. 渗透测试流程信息收集
  4. jmeter学习指南之源码导入 IntelliJ IDEA
  5. Pocket英语语法---三、英语动词的特点是什么
  6. macbook里软件打不开说是没有权限
  7. 5G时代的无线宽带新技术
  8. Python中文乱码
  9. 使用C#: 自动切换鼠标的左右手习惯
  10. boost:regex分割字符串(带有'\'字符) - zzusimon的专栏 - 博客频道 - CSDN.NET