你为神马不用git-flow呢?

这是一篇译文(原文在此),当时我从这篇文章开始初识git-flow,经过一段时间的实践后,觉得git-flow非常棒,我决定在团队里面推行,我需要写一篇使用的教程,重新读这篇文章的时候,我认为,我只需要把它翻译成中文版,就是给队员们很好的教程了。遂。。拙译如下,个别地方可能不太靠原文,请看官明了:

================================

今年的一月, @nvie 同学发表了博客 “一种有效的Git分支模型”, 文章讲解了他是如何让自己的Git仓库保持整洁,除此之外,他发布了git-flow; 一个可以轻松实现该模型的Git扩展。

有同学说从来没有听说过?对此,哥表示相当震精,所以,在这篇文章里我要告诉你,为什么它可以让你从早上傻笑到晚上。

安装完git-flow后,你可以在当前目录下创建一个全新的仓库或把一个现有的仓库转换成新的分支结构:

$ git flow init

它会问你一系列的问题,蛋定!尽量使用它的默认值就好了:

No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []

回答完问题后,git flow会自动地把develop(或随便你重命名它为神马)分支设置为默认分支,此后,你大部份时间都会一直在这个分支上面码代码了。

现在,像往常那样使用Git吧,但只限于develop分支上面的一些小的功能哦。如果你要开始开发一个稍大的功能点,就基于develop创建一个功能分支吧,假设你要增加一个登录(login)页面:

$ git flow feature start login

该命令会基于我们的develop分支创建一个feature/login分支,并切换到该分支上。你在该分支上开发并提交代码,当你完成登录页面的开发后,这样来结束它:

$ git flow feature finish login

该命令将会把feature/login合并到develope分支,然后删除功能(feature)分支。

当你的功能点都完成时(需要发布新版本了),就基于develop创建一个发布(release)分支,然后升级版本号并在最后发布日期前把Bug Fix掉吧:

$ git flow release start v0.1.0

当你在完成(finish)一个发布分支时,它会把你所作的修改合并到master分支,同时合并回develop分支,所以,你不需要担心你的master分支比develop分支更加超前。

最后一件让git-flow显得威武的事情是它处理热修复(即时的BugFix)的能力,你可以像其他分支一样地创建和完成一个热修复分支,区别是它基于master分支,因此你可以在产品出现问题时快速修复,然后通过”finish”命令把修改合并回master和develop分支。

威武吧?那你还在等神马呢?

This entry was posted in 技术, 软件 and tagged , . Bookmark the permalink.

9 Responses to 你为神马不用git-flow呢?

  1. Zoom.Quiet says:

    俺在等等那些神马的同事,得空看过这文章后,
    才能公决啓用哪!
    否则就俺一人在神马的分布式仓库中玩,其它银死呆在中央仓库中,倒霉是只有俺哪…

  2. Pingback: Tweets that mention 你为神马不用git-flow呢? | Jeff的妙想奇境 -- Topsy.com

  3. yueyue says:

    写的真的很好,对于我们这些新手有太大的帮助,谢谢!

  4. xwuxin says:

    现在已经用着了,不错的东东。

  5. Pingback: 你为神马不用git-flow呢?(转) - xwuxin

  6. zz says:

    非常好!
    就是flow的工具 我的devlope分支一般就dev 其它也都是简写

  7. 向前 says:

    请问 本文中的分支图怎么来的?

发布评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>