Git 版本控制系统规范

我们为什么选择 Git

目前如果你如果进行项目开发有一定规范,那么肯定会使用版本控制系统(Version Control System),目前比较流行两个就是 SVN 和 Git。Git有很多优点,其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便,相对也占用更少的硬盘空间。


我们的管理规范

我们公司使用了 Git + YouTrack 配合进行版本控制,我先简单说一下我们现在的流程规范(如果你还没用过 Git 可以跳过)。

首先,我们有一个主分支 Master,这里只有稳定的可用版本,Master 上的每个版本就是拿来可以用的对应版本号的发布版本(含已发布版本和待发布版本),Master 是不允许随意改动的。

第二,从 Master 唯一新建分支,开发分支 Develop,该项目所有开发者在完成新模块或修复异常等一个具体任务后,可以合并到 Develop 进行联合测试。

第三,从开发分支 Develop,以开发者名新建分支,如 gallon、sfs、jksfood 等,作为单个开发者的开发分支。

第四,从自己的开发分支(如 gallon)再新建分支(该分支通过 Android Studio 内置的 YouTrack 就会自动提示创建一个任务分支,前提是 AS 的 Git 要和远端仓库关联起来),现在只要把一个个 Task 任务发布到 YouTrack 就可以了,当这个任务完成后,需要你把任务分支合并到自己的分支(gallon),自己运行可以跑通(通常这里不会有任何问题,因为理论上 gallon 是一直低于任务分支版本的)之后再提交到 develop 分支上,让 Android 组长或负责人或测试人员去检验,如果没有问题到此这个任务就算是 done 了。

我自己的使用感受

以上看起来步步都很清晰,你在什么阶段在什么分支上做什么事,但是,我们来想这么一个情况,如果我有两个 Task 但是他们有很多重叠代码,我可以去同时做这两个任务,但是根据管理规范你只应该在一个分支上专注你的那个 Task,而且领导只知道看 YouTrack 上已经确定好的一条条任务给你做绩效评定呢,结果新建了两个任务分支 A 和 B,你猜的到的,效率会非常低,但是也有一点好处,你能更加专注的做好这一个任务,想想规范一些也不错,那么还有另外一种情况,突然又有新的需要优先去处理的 Task,你需要先把当前的任务分支本地提交,注意,这时因为该任务没完成,我们通常不会把这个任务分支 A 合并到 gallon 分支(正确的做法是该任务完成后合并),然后切换到 gallon 分支,然后创建新任务分支 B,这时候 B 是落后 A 版本的,你在分支 A 中修改的代码都不能在分支 B 中看到,但如果有些你需要用到的代码,是的,要么在 B 中重新写一份(可能还是要小小的解决一下冲突),要么等两个任务都完成了,合并后再修改重叠部分,如果有些情况你常常要在任务分支 A 和任务分支 B 跳来跳去,那可能结果是你要不停解决你自己的冲突,听起来是不是很好笑?好吧,我可能是做惯了多线程操作,常常同一时间做几个任务,修复一个小异常或调整布局与开发新功能等同时进行。这种规范对我的编程可以说是加了限制。

但是,我仍然觉得这种规范是很有道理和有必要的,虽然刚开始使用看起来步骤繁多,甚至可能是稍微降低效率的,可是这种规范对任务的按预期可控推进依然起到了非常重要的作用,对安全性也提供了很大的保证。以后我会建议分配到个人的多个小任务也可以写到一个 Task 当中去,这样也在保证这种规范的情况下,更好的提高效率嘛。

然而这样就是最先进的或最规范的管理方法了吗?我不知道,有的公司是没有我提到的个人分支的,只需要在 develop 上创建新的任务分支;我之前的公司则是只要在 develop 上进行开发就行。也许只有适合自己(团队)的,才是最好的。当然,如果你现在连 Git 都还没体验过,肯定是看的一头雾水,赶紧去试试吧!

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

推荐阅读更多精彩内容

  • 多种多样的工作流使得在项目中实施Git时变得难以选择。这份教程提供了一个出发点,调查企业团队最常见的Git工作流。...
    JSErik阅读 4,388评论 2 8
  • var new$=$.noConflict()
    qqyanzi阅读 272评论 0 0
  • 7月20日 今天小家伙在一个斜坡上奔跑,我对他说“小心摔倒!”,当时我有个觉察,是不是不用跟他说?让他体会自然后果...
    成功的种子阅读 173评论 0 0
  • 产品的功能绝对不可以随便堆积。什么可以做和什么不可以做,都是要根据此产品设计的原则来决策的。 为什么那么多产品有堆...
    Johann阅读 454评论 0 0
  • 1.『你的最佳睡眠时长』 每个人的睡眠时长需求都不一样,有些人必须要睡到十个钟才精神十足,而有些人则五六个钟就已生...
    咿呀作语阅读 154评论 0 1