Git分支那点事儿(下):Git分支实战

hello大家好,昨天我已经讲了Git分支的理论部分没有看的同学请点击这里Git分支那点事儿(上):什么是分支,如何管理分支?,马克思爷爷说过,理论要与实践相结合,那么今天,我们就以在办公中常见的开发场景为例,来具体介绍分支的用法,同时附带一些简单的Git指令,下面让我们开始吧~

一、新项目来啦

公司里来了一个新项目,大A是开发组长,小b小c是开发组员,接到任务后,大A首先在中央仓库建立一个项目仓库,master为主分支,然后大A在本地为master配套一个develop分支,push到服务器上

git branch develop
git push -u origin develop

以后develop分支将会包含项目的全部历史,而master只包含部分历史。当小b和小c需要开发时,他们应该先链接中央仓库,然后检出develop分支

git checkout -b develop origin/develop

checkout命令加 -b 代表创建并切换,相当于以下两条命令

git branch develop
git checkout develop

二、小b和小c开始开发新功能

大A给小b小c分配完任务后,他们开始各自的开发,这时,他们需要为各自的功能创建相应的分支,新的分支应基于develop分支,而不是master分支。

git branch  branch-name develop

这里的branch-name自己可以随意定义名称,但是千万别用test,因为我试过,这个名字非法,哈哈哈

三、小b小c完成功能开发

开发功能完成后,小b小c觉得功能ok了,这时候他们就可以把自己的分支合并到develop上,然后push到中央仓库

git pull origin develop
git checkout develop
git merge branch-name
git push
//如果觉得当前分支不需要了,可以执行
git branch -d branch-name

第一条pull,是确保在合并功能前develop分支是最新的,注意,功能只能合并到develop分支

四、组长准备功能发布

组长大A在看到组员功能完成后,准备发布第一个功能测试版本


git branch release/v0.1.0 develop

这个分支是清理发布、执行所有测试、更新文档的地方,一个用于专门改善发布功能的分支。
只要把这个分支push到中央仓库,这个分支的功能就是冻结的。任何在develop的分支中的新功能都推到下一个release中

五、完成发布

一旦release测试完毕,这是,需要将release合并到master上,修改后的release同时也要合并回develop上,因为改好的功能在以后的develop分上也要体现出来

git checkout master
git merge release/0.1.0
git push
git checkout develop
git merge release/0.1.0
git push
git branch -d release/0.1.0

在release合并到master后,还要给master分支打tag以方便跟踪。

git tag -a v0.1.0 -m "initial public release" master
git push --tags

六、用户发现bug

对外发布后,发现有bug,为了处理bug,小b(小c)从master分支拉出来一个hotfix维护分支,提交修改以解决问题,然后直接合并回master和develop分支


合并完毕后,删除hotfix分支。

最后推荐一个可视化的git工具,SourceTree,方便新手同学使用

引用

http://blog.jobbole.com/23398/ 阮一峰:Git分支管理策略
http://www.bootcss.com/p/git-guide/ git-简易指南
http://nvie.com/posts/a-successful-git-branching-model/ A successful Git branching model
https://www.sourcetreeapp.com/ sourcetree 分支管理工具
http://semver.org/lang/zh-CN/ 语义化版本2.0.0

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

推荐阅读更多精彩内容

  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,311评论 2 8
  • iOS应用架构谈 网络层设计方案 前言 网络层在一个App中也是一个不可缺少的部分,工程师们在网络层能够发挥的空间...
    其实也没有阅读 563评论 1 1
  • 想你~ 今天肩膀還是很痛,很遲才去上班,可是也沒什麼心情。混了一天吧,可能還是很難適應這種工作模式,特別是身體不適...
    NCNeverland阅读 125评论 0 0