如何以不要求合并提交消息的方式使用git flow release finish
?正如我所料,-m
标志不提供此功能。
当然,目标是能够以不需要交互的方式编写脚本。
答案 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
标志传递给它。
你可以做的几件事:
答案 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
是压榨提交。现在一切都会自动进行:)