系统说明:
- Windows 7
- git 版本 2.10.1.windows.1
- TortoiseGit 2.3.0.0
我要:
merge 提交消息以完全自动方式不同(无手动修改
)
总结:
在windows上,使用tortoiseGit,没有prepare-commit-msg
hook , 只有 start-commit-hook
和无论 hook 脚本是什么, 我都会收到一个窗口 pop 错误:
%1 is not a valid Win32 application
此外,我更愿意仅更改“merge ”的提交消息。
步骤:
设置钩子(Hook):将工作树路径设置为与我的项目路径相同,
在“要执行的命令行”中,我选择我准备的文件:
.git\hooks\prepare-commit-msg
它的内容是echo "test"
。
然后我尝试提交并得到这个错误:
我已经确定这个脚本文件确实是被使用的文件,
因为如果我删除它,我会收到这条消息:
最佳答案
TortoiseGit Hook 完全独立于普通 Git Hook 。
您可以使用任何脚本语言或可执行文件作为 TortoiseGit Hook 脚本。但是,在配置中,您必须输入有效的 Windows 可执行文件作为命令,例如.exe
文件,对于 .js
或 .vbs
脚本,您需要指定解释器(wscript
或 cscript
) 和脚本的路径作为解释器参数(参见 here )。为了执行 bash 脚本,我认为您需要执行 bash.exe 并为脚本提供适当的参数 - 我之前没有测试过。
执行的钩子(Hook)从 TortoiseGit 获取一些参数,这些参数记录在案 here ,例如Start-commit
在提交对话框打开时被调用并获得三个 cli 参数:PATH MESSAGEFILE CWD,而 PATH 是包含提交对话框所有条目的文件的路径,MESSAGEFILE 是到一个文件,您可以在其中放置应用作提交消息的内容,CWD 是工作树路径。
示例可以在 https://github.com/TortoiseGit/TortoiseGit/tree/master/contrib/hook-scripts/client-side 上找到
PS:为了检查这是否是 merge 提交,您可以检查 .git/MERGE_HEAD
是否存在。
关于git - TortoiseGit - 更改默认 merge 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39959434/