合并提交消息以完全自动化的方式不同(无需手动amend)
在Windows下使用tortoiseGit,没有prepare-commit-msg 挂钩,只start-commit-hook和不管钩子脚本是什么,我得到一个窗口弹出错误:
%1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)
另外,我宁愿只更改“合并”的提交消息。
将工作树路径设置为与我的项目路径相同,
并在“执行命令行”中选择我准备的文件:
.git\hooks\prepare-commit-msg
Run Code Online (Sandbox Code Playgroud)
它的内容是echo "test".
然后我尝试提交并收到此错误:
我已经确定这个脚本文件确实是使用的文件,
因为如果我删除它,我会收到以下消息:
TortoiseGit hooks 完全独立于 vanilla Git hooks。
您可以使用任何脚本语言或可执行文件作为 TortoiseGit 钩子脚本。然而,在配置上必须输入AA有效的Windows可执行文件的命令,如一个.exe文件,.js或.vbs脚本,你需要指定解释(wscript或cscript)和路径脚本解释器参数(参见这里)。为了执行 bash 脚本,我认为您需要使用脚本的适当参数执行 bash.exe - 我之前没有测试过。
执行的钩子从 TortoiseGit 获取一些参数,这些参数记录在此处,例如,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.