git flow release finish -m 在 cmd 和 Git Bash 中给出不同的行为
git flow release finish -m gives different behavior in cmd and Git Bash
我正在为 git-流程自动化编写 Bash 脚本 Windows。
问题是:当我从 cmd 调用 git flow release finish MYRELEASE -m "MESSAGE"
时,它会在不要求输入的情况下运行(期望的行为)。但是当我从 Git Bash (MINGW64) 做同样的事情时,它要求合并消息(启动 vim),我想避免这种情况。
我尝试在两个控制台中将 git-config 设置为 git config --global core.mergeoptions --no-edit
,但结果是一样的:Git Bash 总是要求合并消息。
- 为什么控制台的行为不同?
- 如何让 Git Bash 停止请求合并消息?
更新:
git flow release finish 1.1.4 -m "v1.1.4" --showcommands
在两个控制台的输出都是
git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
git merge --no-ff release/1.1.4
Already up-to-date!
Merge made by the 'recursive' strategy.
git tag -a -m v1.1.4 1.1.4 1.1.4
git checkout develop
Switched to branch 'develop'
Your branch is up-to-date with 'origin/develop'.
git merge --no-ff 1.1.4
Already up-to-date!
Merge made by the 'recursive' strategy.
git branch -d release/1.1.4
Deleted branch release/1.1.4 (was 0a774fe).
Summary of actions:
- Release branch 'release/1.1.4' has been merged into 'master'
- The release was tagged '1.1.4'
- Release tag '1.1.4' has been back-merged into 'develop'
- Release branch 'release/1.1.4' has been locally deleted
- You are now on branch 'develop'
我刚刚在相关 question 的回答中找到了解决方案。
您所要做的就是在脚本开头执行 export GIT_MERGE_AUTOEDIT=no
并在脚本结尾执行 unset GIT_MERGE_AUTOEDIT
。
我仍然不知道为什么这两个控制台不同,但此修复程序产生了所需的行为,所以对我来说已经足够了。
我正在为 git-流程自动化编写 Bash 脚本 Windows。
问题是:当我从 cmd 调用 git flow release finish MYRELEASE -m "MESSAGE"
时,它会在不要求输入的情况下运行(期望的行为)。但是当我从 Git Bash (MINGW64) 做同样的事情时,它要求合并消息(启动 vim),我想避免这种情况。
我尝试在两个控制台中将 git-config 设置为 git config --global core.mergeoptions --no-edit
,但结果是一样的:Git Bash 总是要求合并消息。
- 为什么控制台的行为不同?
- 如何让 Git Bash 停止请求合并消息?
更新:
git flow release finish 1.1.4 -m "v1.1.4" --showcommands
在两个控制台的输出都是
git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
git merge --no-ff release/1.1.4
Already up-to-date!
Merge made by the 'recursive' strategy.
git tag -a -m v1.1.4 1.1.4 1.1.4
git checkout develop
Switched to branch 'develop'
Your branch is up-to-date with 'origin/develop'.
git merge --no-ff 1.1.4
Already up-to-date!
Merge made by the 'recursive' strategy.
git branch -d release/1.1.4
Deleted branch release/1.1.4 (was 0a774fe).
Summary of actions:
- Release branch 'release/1.1.4' has been merged into 'master'
- The release was tagged '1.1.4'
- Release tag '1.1.4' has been back-merged into 'develop'
- Release branch 'release/1.1.4' has been locally deleted
- You are now on branch 'develop'
我刚刚在相关 question 的回答中找到了解决方案。
您所要做的就是在脚本开头执行 export GIT_MERGE_AUTOEDIT=no
并在脚本结尾执行 unset GIT_MERGE_AUTOEDIT
。
我仍然不知道为什么这两个控制台不同,但此修复程序产生了所需的行为,所以对我来说已经足够了。