git 工作流总结

之前开的坑来补。

如何利用 Git 的团队协作是个问题,处理不好会让工作事倍功半。

我在学习的过程中了解到了4种 Git 团队协作的方式。

1.中心化工作流
2.基于功能分支的工作流
3.Gitflow 工作流
4.Fork 工作流

中心化工作流

中心化工作流将中央仓库作为项目中所有修改的唯一入口。这种工作流不需要 master 之外的其他分支。

如何工作

开发者将中央仓库 clone 到本地后开始工作。在他们的本地仓库中,可以修改文件和提交更改,但是,所有新的提交都保存在本地,和中央仓库完全隔离。开发者可以将 upstream 的同步推迟到他们方便的时候去做。


管理冲突

在开发者发布功能之前,需要先 fetch 更新到最新到中央仓库,在它们之上 rebase 自己到更改。 这样的优点是可以留下完美的线性历史。

这套协作方式对于 SVN 的使用团队来说很棒,但是没有用到 Git 分布式的优点。


image.png

Feature 分支工作流

当你熟练使用 Git 之后,在你的开发流程中添加功能分支是一个非常能促进团队协作的方式。
这种工作流的好处是,多个开发者专注自己的功能而不会打扰中央仓库。还能保证 master 分支永远不会包含质量有问题的代码,给持续集成环境带来了很大好处。

封装功能的开发方式使得 Pull Request 的使用更加方便。它可以在开发者在功能并入项目之前一起参与讨论,提出问题,或者寻求建议。

如何工作

Feature 分支工作流同样使用中央仓库的概念,master 分支代表官方的项目历史。开发者每次进行新的工作时,创建一个新的分支,该分支名称应为描述功能或者针对某一 issue 。
feature 分支也应该被推送到中央仓库。这使得你和其他开发者共享这个功能,而又不会改变官方代码。


Pull Request 是分支工作流里非常便利的工具,有人如果完成了一个功能,他们不会立刻并入master。他们将 feature 分支推送到中央仓库发布一个 Pull Request 。这样可以在并入主代码库之前让所有其他开发者审查代码。Pull Request 也是一个讨论板块,任何人遇到问题需要帮助时可以发起一个 Pull Request 让其他开发者看到。

GitFlow 工作流

GitFlow工作流相比功能分支工作流没有增加新的概念,它给不同的分支制定的不同的功能,严格定义了它们应该怎样以及何时进行交流。

开发分支

对于一个开发人员来说,开发分支是打交道最多的分支。每增加一个功能,就在开发分支的基础上新建一个功能分支,每当功能开发完成时,它会杯合并会开发分支。功能分支 永远不应该跟 master 交互。

发布分支

一旦 开发分支的新功能开发到一定程度(deadline 或者 其他原因),你可以从 开发分支 fork 出来一个分支发布。这个分支的创建开始了下一个发布周期。只有和发布有关的工作应该在词分支上进行。

发布完成后,发布分支将合并进 master,并打上版本号标签。另外也应该合并回 develop ,后者可能在发布启动后又有了新的改动。

通常使用一个专门的分支来准备确保一个团队修复当前发布的功能,其他团队可以开发下一个发布的功能。

维护分支

维护分支 (hotfix)用来紧急给产品的发布打上布丁,这是唯一可以从 master 上 fork 的分支。修复完成后,它们应该被并入 master 和 develop 分支。

实际的工作流程,则需要根据上面规则和实际情况进行详细的规划。

Fork 工作流

Fork 工作流不同与其他几个工作流。这个工作流可以让每个开发者都拥有一个服务端仓库。也就是说每个贡献者都有两个Git仓库,一个开放的服务端仓库,和私有的仓库。

Fork 工作流的主要有点在于代码可以轻易的整合进项目,而不需要每个人都推送到单一的中央仓库。开发者推送他们自己的服务端仓库,只有项目管理者可以推送到官方仓库。这使得管理者可以结束任何开发者的提交,却不需要给他们中央仓库的权限。

在工作项目中,本源规定了一套 Git Flow 工作流,后来因为开发者只有我一个人(partner在比较闲的时候时不时会来贡献几个功能),并且没有 中央代码库 的权限。所以后来就逐渐转变成了 Fork 工作流。

相比前三个工作流,Fork 工作流使用起来更简单,且最安全。因为贡献代码的人并不干扰中央仓库,只通过 Pull Request 来和中央代码库进行交互,最适用的场景就是开源仓库,和松散型的开发团队使用。

以上就是在和 Partner 寻找有效的工作方式时,学习到的 Git 团队工作流程。以后如果遇到其他新奇的工作流程会再补充更新。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容