专栏首页Go实战使用git-flow来帮助管理git代码 转

使用git-flow来帮助管理git代码 转

对git不熟悉的我,经常把git提交搞得很乱,导致在master上有许多无用的commit,最终决定好好地看一下git的使用教程,却不小心发现了还有一个git-flow的工具可以帮助我管理好git项目的代码。

git-flow在ubuntu上使用比较简单。首先安装,可以通过apt-get来获取。命令如下:

sudo apt-get install git-flow

如果是在windows下,可以参考这篇文章进行安装:http://my.eoe.cn/sunxun/archive/158.html

如果你的git已经装好,则方便多了,下载下面两个地址的文件,并解压出getopt.exe和libintl3.dll放到git的安装目录的bin目录下。

http://sourceforge.net/projects/gnuwin32/files/util-linux/2.14.1/util-linux-ng-2.14.1-bin.zip/download

http://sourceforge.net/projects/gnuwin32/files/util-linux/2.14.1/util-linux-ng-2.14.1-dep.zip/download

然后检出github上gitflow项目,如下命令:

  1. git clone --recursive git://github.com/nvie/gitflow.git

进入并执行里面的contrib\msysgit-install.cmd,提示复制成功,就可以了。

接下来是初始化项目。我在我原来的git项目上执行以下命令来进行初始化:

  1. git flow init

它会创建或转换一个新的版本分支结构,当然在初始化的过程中,会问到以下这边问题,我都选择了默认:

  1. Which branch should be used for bringing forth production releases?
  2.    - master
  3. Branch name for production releases: [master]
  4. Branch name for "next release" development: [develop]
  5. How to name your supporting branch prefixes?
  6. Feature branches? [feature/]
  7. Release branches? [release/]
  8. Hotfix branches? [hotfix/]
  9. Support branches? [support/]
  10. Version tag prefix? []

完成之后,通过git branch 命令,可以看到它为我们新建好了一个develop的分支。

接下来我将继续使用,这篇笔记再慢慢补充。

修复一个bug。

  1. git flow hotfix start 3

它会创建一个基于master的分支hotfix/3,并切换到当前分支。

当修复完成后,可以执行以下命令:

  1. git flow notfix finish 3

增加一个功能特性

  1. git flow feature start demo

它会创建一个分支feature/demo,并切换到该分支。

当功能完成:

  1. git flow feature finish demo

它会有feature/demo分支合并到develop分支,然后切换回develop分支,并删除feature/demo分支。

功能完成,要合并到主分支,这时可以执行

  1. git flow release start v0.7.0

它会创建一个release/v0.7.0分支,并切换到该分支。

然后在这里进行测试。如果测试没问题,则执行以下命令:

  1. git flow release finish v0.7.0

它会将release/v0.7.0分支的内容合并到master分支和develop分支,并且打上tag v0.7.0,然后删除release/v0.7.0分支。

相关教程:

gitflow 开发流程

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • golang之runtime.SetFinalizer

    在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供...

    henrylee2cn
  • RESTful架构详解 转

    REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy ...

    henrylee2cn
  • Golang浮点型的默认舍入规则——四舍六入五成双

    四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则,又名银行家舍入法。它比通常用的四舍五入法更加精确。

    henrylee2cn
  • git相关操作

    Text-to-speech function is limited to 200 characters

    botkenni
  • 版本控制-git的使用

    大家好,我又回来了,上个礼拜因为熬夜看球感冒了,所以没有写新的文章出来。 这周给大家介绍下git的使用 我们为什么需要一个版本控制的软件呢? 我相信大家很多人在...

    magicsoar
  • 让你的 git 拥有不同身份

    由于你没有进行过特别的设定,所以 git不管它是往 github上传还是往你公司的服务器上传,都会以一个完全相同的身份上传,这有时候会造成困扰,比如说这样: ?...

    程序员宝库
  • Git 默认不区分大小写

    背景: 通过代码规范,修改了包名为全小写(修改了文件夹目录),但发现push后,git服务器的文件夹目录还是为大写 解决方法: git默认是不区分大小写的,意思...

    千往
  • Huginn 定制功能开发说明

    如果你想针对当前你的 Huginn 版本增加个人定制功能的话,请参照下面的说明。因为在 GitHub 上将 fork 后的仓库私有化开发并不是一件简单的事情,所...

    huginn 中文网
  • git工具使用问题记录

    git for windows命令行操作时报错“”Filename too long“,

    用户1396155
  • 原 荐 Kubernetes(二) - 使用

    喵了个咪233

扫码关注云+社区

领取腾讯云代金券