Git flow分支管理,用于修复bug。

34

我已经使用了一段时间的 Git Flow。我在寻找针对开发分支中出现的问题和 Bug 的分支模型。我知道我们可以使用热修复功能,但这只适用于 Master 分支或生产环境中快速修复 Bug。

在开发过程中修复 Bug 并不属于特性。我可以重新初始化 Git Flow 并将默认前缀分支覆盖为 bug/,但如果我需要开始一个新特性,就需要重新初始化。这是一个好的做法还是有一些技巧来处理这个问题?


我认为这应该放在Programmers.SE上? - Ky -
3个回答

24
如果需要应用的修复只涉及一个提交,则可以在develop分支中进行,无需创建分支。如果它涉及多个提交,则可以使用"git flow feature"命令。当前软件在您完成仅有一个提交的功能分支时将执行"git merge -ff",这在您的日志中看起来与在develop上仅有一个提交是相同的。
如果您希望在日志中指示该功能是一个错误修复,您可以将分支命名为"bugfix-missing-parameter"或"issue-34-not-reading-file-properly"之类的名称。
我可以理解"feature"一词可能暗示着"新事物"而不是"修复",但那只是词语。如果我为修复创建一个新命令,代码将与"git flow feature"的代码完全相同,因此我看不到任何好处。
更新于2015年11月19日:
自从1.9.0版本以来,gitflow AVH Edition具有一个bugfix命令。它与feature相同,但分支前缀为bugfix而不是feature。

我找不到git-flow版本1.9.0。你能帮我安装一下吗? - Anoop Thiruonam
好的,我之前已经研究过这个问题了。但是它安装的是1.6.1 AVH版本。我使用的是Ubuntu操作系统。 - Anoop Thiruonam
除了Xenial版本的Ubuntu,您需要手动安装。根据您所说,您正在使用Trusty版本。 - Peter van der Does
好的,我在Launchpad上为git-flow AVH创建了一个新的PPA。https://launchpad.net/~pdoes/+archive/ubuntu/gitflow-avh 它包含了Ubuntu Precise、Trusty、Wily和Xenial的最新gitflow版本。我使用了原始的Xenial软件包进行回溯。 - Peter van der Does
我已经在http://stackoverflow.com/questions/36442801/how-to-install-git-flow-1-9-1-avh-in-ubuntu-14上创建了一个问题。请在这里粘贴您的答案,以帮助其他正在寻找相同答案的人。谢谢。 - Anoop Thiruonam
@PetervanderDoes:是否可以考虑将bugfix命令添加到该页面(https://github.com/petervanderdoes/gitflow-avh/wiki)中? - Terje Sandstrøm

14
在开发分支上修复错误的想法,与 git flow hotfix(在 master 上)相比,原因在于:
  • 通常在开发 HEAD 上修复错误(它只是另一个提交,用于修复其他提交引入的某些问题)
  • 您会在专用分支上的特定版本/标签上进行热修复("production 分支"),并且您将或不将合并该热修复(如果热修复非常特定于某个版本,并且在随后的发布中不再相关,则根本不会将其合并回去)

因此,我认为您不需要专用分支/ "git flow" 操作:只需进行明确标识的提交并将其推送到 development 分支的顶部即可。


3
git-flow 的作者也有跟你说的一样的评论:https://github.com/nvie/gitflow/issues/24 - hakunin

13

git-flow-avh 是你想要的

对于OSX:

  • brew uninstall git-flow # 删除当前版本
  • brew install git-flow-avh # 安装更新版本

在项目文件夹内:

  • git init
  • 您会看到其中一个提示是Bugfix branches? [bugfix/],这不是标准的git-flow提示
  • 开始一个新的bugfix - git flow bugfix start <branch name>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接