【问题标题】:TortoiseGit - change default merge messageTortoiseGit - 更改默认合并消息
【发布时间】:2016-10-10 13:27:04
【问题描述】:

系统说明:

  • Windows 7
  • git 版本 2.10.1.windows.1
  • TortoiseGit 2.3.0.0


我想要:

完全自动化的方式合并提交消息是不同的(手册amend



总结:

在windows上,使用tortoiseGit,没有prepare-commit-msghook,只有start-commit-hook不管钩子脚本是什么,我得到一个windows弹出错误:

%1 is not a valid Win32 application

另外,我希望更改“合并”的提交消息。



步骤:

设置钩子:

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

.git\hooks\prepare-commit-msg

它的内容是echo "test"

然后我尝试进行提交并收到此错误:

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

【问题讨论】:

  • 您使用的是什么版本的 Windows、SourceTree 和 Git? SourceTree是使用嵌入式Git还是系统Git(即你自己的Git与SoruceTree分开安装)
  • @VonC - 抱歉,正要添加那些然后忘记并刚刚发布。现在它就在那里。

标签: git tortoisegit


【解决方案1】:

TortoiseGit 钩子完全独立于普通 Git 钩子。

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

【讨论】:

  • 如何查看.git/MERGE_HEAD
  • 抱歉,被 AFK:钩子脚本获取工作树的路径作为参数。只需将.git/MERGE_HEAD 附加到它并检查此文件是否存在。如果是:这是一个合并提交,否则不是。
  • 如何检查?我不知道任何这些事情..对不起,这超出了我作为客户端开发人员的工作范围..我从来没有做过这些事情或知道它们的存在,而谷歌的答案几乎为零“tortoisegit 钩子示例”这个话题
  • 更新了答案
  • @MrTux TortoiseGit 找不到解释器的环境变量怎么办?在系统变量下,我放置了指向 pwsh.exe 的 PWSH 变量。然后,在 TortoiseGit 中执行的命令行中,我写了 PWSH %root%\'myscript.ps1。之后,我收到消息“系统找不到指定的文件”。但是,如果我在文本框中写入 pwsh.exe 的完整路径,则会执行 myscript.ps1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 2018-06-04
  • 2013-01-29
  • 2016-08-22
相关资源
最近更新 更多