合并提交消息以完全自动方式不同(否手动amend
)
在Windows上,使用tortoiseGit,没有prepare-commit-msg
hook,只有start-commit-hook
和无论钩子脚本是什么,我得到一个Windows弹出窗口错误:
%1 is not a valid Win32 application
另外,我希望仅更改“合并”的提交消息。
将工作树路径设置为与项目路径相同,
并在“命令行执行”中选择我准备的文件:
.git\hooks\prepare-commit-msg
其内容为echo "test"
。
然后我尝试提交并收到此错误:
我已确保此脚本文件确实是使用的文件,
因为如果我删除它,我收到这条消息:
答案 0 :(得分:2)
TortoiseGit钩子完全独立于vanilla Git钩子。
您可以使用任何脚本语言或可执行文件作为TortoiseGit钩子脚本。但是,在配置中,您必须输入有效的Windows可执行文件作为命令,例如一个.exe
文件,用于.js
或.vbs
脚本,您需要指定解释器(wscript
或cscript
)以及脚本的路径作为解释器参数(参见here)。为了执行bash脚本,我认为你需要用脚本的相应参数执行bash.exe - 我以前没有对此进行过测试。
执行的钩子从TortoiseGit获取一些参数,这些参数记录在here,例如在打开提交对话框时调用Start-commit
并获取三个cli参数:PATH MESSAGEFILE CWD,而PATH是包含提交对话框的所有条目的文件的路径,MESSAGEFILE是文件的路径,您可以在其中将应该用作提交消息的内容放在哪里,CWD是工作树路径。
示例可以在https://github.com/TortoiseGit/TortoiseGit/tree/master/contrib/hook-scripts/client-side
找到 PS:为了检查这是否是合并提交,您可以检查是否存在.git/MERGE_HEAD
。