Git规范

作者: 程序亦非猿 | 来源:发表于2016-04-06 09:22 被阅读1407次

Git规范

by 程序亦非猿 2016.4.6
这又是一篇我在公司分享的,想制定一下Git的规范,有兴趣的可以看看~
上一篇在这里

分支模型

每个项目必须要有masterdevelop分支。
每个开发人员拥有一个自己的分支,如yfychz

master 分支

master 分支只能存在release版本的代码,并需要对每个release打对应的tag

develop 分支

developmaster分支检出,它作用主要是日常开发合并代码,并与master分支做交互。
当参与开发的人员较多时,可指定一个人管理develop分支,专门负责合并代码,便于管理,避免多人同时使用develop分支而出现问题。

另外当功能开发完毕后,代码合并入develop分支,测试完成通过后,merge到master分支,并在master上打tag。

开发人员自己的分支

开发人员自己的分支,由develop分支检出,是自己负责的功能分支的上游

工作流程

Feature (新需求开发)

当有新需求需要开发时:

  1. 每个开发人员在自己的分支上检出一个新的feature分支,如在czn上检出feature_search分支
  2. 在新的feature分支上进行开发
  3. 新功能开发完毕后合并到自己的分支
  4. 所有人员的分支合并到develop分支,并进行测试
  5. 测试通过后合并到master,并打tag

Hotfix (紧急修复bug)

当有紧急bug需要修复时

  1. 从master 拉分支hotfix_xxx
  2. 修复完毕后合并到develop分支
  3. 测试完毕后合并到master分支,并打tag

小结

分支模型已经工作流程大约如图所示:

分支模型-工作流程

Gitflow

gitflow是git的一个辅助工具,可以简化我们新建分支,合并分支,删除分支的操作,也可以减少人工误操作而出错的概率

举个例子:
新功能能开发,使用gitflow之前:

git checkout yfy
git checkout -b feature_search
...developing...
git checkout yfy
git merge feature_search
git branch -d feature_search

使用gitflow之后:

git flow feature start search
...developing...
git flow feature finish search

是不是省去了很多繁琐的操作?

gitflow 的功能不止如此~

gitflow虽好,但是考虑到大家刚开始使用git,需要熟悉git以及git命令,所以它现在不是强制的,如果有兴趣或者你也懒得敲那么多命令的话,建议看看 git-flow 备忘清单

PS: 事实上git最开始是没有gitflow的,它是用户实际经验的总结,so,希望我们团队最终能拥有最适合我们自己的gitflowgitf

最后

规范是死的,人是活的,上诉所说都是比较理想化的,实际情况可能更加复杂,大家可以根据实际情况调整。

如果有疑问或更好的建议,欢迎反馈~~~

另外欢迎关注:
我的Github
我的微博
我的微信公众号:

微信公众号

相关文章

  • Git的分支命名

    主要规范两点: git 分支命名规范 git提交记录规范 一. git 分支命名规范 git分支分为集成分支、功能...

  • iOS 小谈一叙

    一、规范 1) git 提交规范 适当使用git merge / git rebase 2) 代码规范 注意改动别...

  • 日志和代码规范网文

    日志规范 惊讶!我定的日志规范被CTO在全公司推广了 Git 分支设计规范 git规范 Git分支设计规范

  • GIT 规范

    git 规范 git 规范一般包括两点:分支管理规范和 git commit 规范。 分支管理规范 一个项目可以创...

  • git分支命名规范

    git 分支命名规范 git 分支命名规范 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,...

  • git操作

    git规范 Git 使用规范流程 团队中的 Git 实践 Git: 教你如何在Commit时有话可说 Git工作流...

  • Git 分支命名规范

    Git 分支命名规范 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关...

  • gitflow 规范及工具整理

    gitflow 进阶规范 git cz 通过工具 git-cz 规范 git commit 提交信息。 使用 gi...

  • 使用 git hook 规范 Android 项目

    引言 本文所说的『规范』包含两个部分 git commit 是注释的规范 git commit 时对代码规范的检查...

  • iOS 降低出问题的几率

    遵守规范 代码规范 git流程 git流程可以参考http://www.ruanyifeng.com/blog/2...

网友评论

  • 七号大蒜:每个人分一个远程分支的话,感觉又加了一层繁琐的环节,git的个人操作全在本地就好了哒。我们是所有开发人员维护一个release的线,个人仅限本地。

    认知有限,讨论讨论
    程序亦非猿: @七号大蒜 你们没有远程分支 fetch后怎么push?
    七号大蒜:@程序亦非猿 权限控制,远程只有master和feature分支,开发人员提交到代码前规定必须fetch代码。其他操作都在本地进行。感觉没有merge的情况。
    程序亦非猿: @七号大蒜 那你们怎么合代码
  • 陆地蛟龙:好文,简单明了。
    程序亦非猿: @胡髭蛤蟆 谢谢蛤蟆 😄
  • 阿群1986:保留一个experimental分支也是极好的
    程序亦非猿:@阿群1986 现在的模式 足够应付了吧
  • 匿蟒:还有另一种用法,可以探讨一下。

    1、协作时,真正的Git库在远程。开发只用master分支,它代表最新。
    2、开发者们,在本地自建分支、随意玩耍,但仅在master分支提交。
    3、push时,远程用Gerrit,或同类的代码审查工具来控制merge。(如果是GitHub这类环境,则是每个开发者一个Git库,给真正的库提pull request。)
    4、版本通常用TAG来标注。而如果有一个低版本需要长期维护,则拉出新分支,像master那样去维护。
    程序亦非猿:@程序亦非猿 你们这样合并代码需要通过master去合并,这样的实践不太好 会污染master 即使你在master上加了tag
    程序亦非猿:@匿蟒 这样方便bugfix 以及 feature 同时进行
    程序亦非猿:@匿蟒 谢谢回复 master需要保持干净,最好是不直接交互 而留一个develop分支合并代码

本文标题:Git规范

本文链接:https://www.haomeiwen.com/subject/jnzplttx.html