2011-10-19 97 views
1

我正在尝试编写一个commit-msg脚本,它调用powershell脚本并将提交消息作为参数传入。在Windows上的git commit-msg中访问提交消息

到目前为止,我能够使用参数执行powershell脚本,但我无法弄清楚如何访问commit-msg中的提交消息。由于提交尚未完成,因此我无法使用日志。还有什么其他选择?

这里是我在提交-MSG到目前为止的代码:

exec c:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command "& {C:/Windows/System32/WindowsPowerShell/git-pre-commit.ps1 '{the_git_commit_message}'}" 
+0

你能澄清你想要的信息流(也许,让所有参与具体名称的脚本,或者给予使用的一个例子) ?这听起来像你可以简单地将参数传递给你的其他脚本。 –

+0

我需要提交消息在提交完成之前将其交给powershell脚本,最终目标是如果提交消息不符合特定条件,则终止提交。 –

回答

1

commit-msg钩($1)的参数是具有该消息的文件的名称。将文件(路径)传递给powershell脚本,并将所需的内容添加到此文件并退出脚本。

此外,根据你在做什么,你可能想看看prepare-commit-msg

PS:看看下的.git /挂钩提交 - msg.sample文件,以获得一些想法。

+0

据我所知,该文件不包含最新的提交信息。钩子($ 1)给了我COMMIT_EDITMESSAGE,这对我没有帮助。 –

+1

@JacobHuggart - 这是提交消息存储的文件名。您可以打开文件并阅读整个提交消息。 –

1

从临Git的书:

整个提交过程完成后,在post-commit钩子 运行。它不需要任何参数,但可以通过运行git log -1 HEAD轻松获得最后的提交 。通常,此脚本用于 通知或类似的内容。

如果我的理解正确,您需要实际的消息并将提交消息的内容传递给powershell脚本,并且对修改消息不感兴趣。

了解更多关于在这里:​​

http://progit.org/book/ch7-3.html

干杯