git - TortoiseGit - 更改默认 merge 消息

标签 git tortoisegit

系统说明:

  • 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):

enter image description here

将工作树路径设置为与我的项目路径相同,
在“要执行的命令行”中,我选择我准备的文件:

.git\hooks\prepare-commit-msg

它的内容是echo "test"

然后我尝试提交并得到这个错误:

enter image description here

我已经确定这个脚本文件确实是被使用的文件,
因为如果我删除它,我会收到这条消息:

enter image description here

最佳答案

TortoiseGit Hook 完全独立于普通 Git Hook 。

您可以使用任何脚本语言或可执行文件作为 TortoiseGit Hook 脚本。但是,在配置中,您必须输入有效的 Windows 可执行文件作为命令,例如.exe 文件,对于 .js.vbs 脚本,您需要指定解释器(wscriptcscript) 和脚本的路径作为解释器参数(参见 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/

相关文章:

git - 警告 : ignoring ref with broken name refs/stash 2

git - TortoiseGit - 向其他用户推送错误

git - 如何解决 TortoiseGit 中的已删除 merge 冲突?

git - 仅将一个文件还原到父分支

git : do a correct rebase

iphone - 将 git commit SHA 添加到 iOS 应用程序

推送时 Git 推送失败并显示 "fatal: early EOF"但仅在一个文件上

git - 警告 : You appear to have cloned empty repository in TortoiseGit

git - 如何在 git 命令提示符下添加时间

java - 如何在 Eclipse 中将 github maven 项目作为 jar 文件导入?