`git flow release finish`非交互式

时间:2013-01-25 22:17:49

标签: git command-line git-flow

如何以不要求合并提交消息的方式使用git flow release finish?正如我所料,-m标志不提供此功能。

当然,目标是能够以不需要交互的方式编写脚本。

7 个答案:

答案 0 :(得分:26)

您可以设置环境变量

export GIT_MERGE_AUTOEDIT=no

git flow release -m 'Merge Message' release_branch_name

unset GIT_MERGE_AUTOEDIT

合并时不会调用编辑器。

如果切换到我的前叉git-flow AVH Edition,您可以将此选项设置为仅适用于使用git-flow时。

答案 1 :(得分:4)

git flow(或多或少)只是git命令的包装器。弹出打开您选择的git-flow-*.sh,复制git命令,然后搞乱它们。在这种情况下,请将--no-edit添加到git merge。这种方法一举两得:你可以将这些行复制到自动化脚本中。

答案 2 :(得分:3)

我遇到了-m标志的问题。但是,如果你给出一个没有空格的消息,它就可以了。一定是个bug。

git flow release finish -m 'my_message_with_no_spaces' 1.2.3

答案 3 :(得分:2)

不幸的是,使用当前版本的git-flow没有开箱即用的方法。

通过查看source code,用于合并的git命令是

git merge --no-ff

并且无法将--no-edit标志传递给它。

你可以做的几件事:

  • fork项目并插入此功能(可能作为可选标志)
  • 将其作为一项功能提出并等待开发人员实施

答案 4 :(得分:2)

您可以传递-m标志以在命令行上指定标记消息。

合并仍然可能存在冲突,但标记操作不会尝试打开标记消息的编辑器。

git flow release finish -m "my awesome release" 1.2.3

https://github.com/nvie/gitflow/wiki/Command-Line-Arguments#git-flow-release-finish--fsumpkn-version

答案 5 :(得分:1)

我不了解git flow,但如果它支持标准git标记,则可以在自动设置中使用--no-edit标记avoid merge commit messages

答案 6 :(得分:0)

我已经完成:

git flow release finish -m "New release:$releaseVersion" -T
$releaseVersion -S $releaseVersion

其中-m是提交消息,-T是标记消息,-S是压榨提交。现在一切都会自动进行:)