支持Git钩子的脚本语言

5
Git hooks支持哪些脚本语言?我看到Python、Ruby和Bash的示例。这些是唯一支持的吗?目前我主要想在Windows上使用,但对上述语言不熟悉。我想知道它是否支持类似VBscript、Powershell或Windows批处理文件的东西?是否有所有支持的语言列表?

3
Unix-like系统钩子中看到的#! /bin/sh,是这些系统能够执行shell脚本的方法。一个文件的前两个字符为#!(且可执行),它会通过读取其余的可执行头部信息(基本上是到换行符为止,同时可能有系统定义的大小限制),将它视为解释器的路径名,然后执行该解释器并插入“被解释”的路径名来代替,所以 #! /bin/sh 使操作系统运行 /bin/sh script。(换言之,这不是git的问题,而是操作系统的问题。) - torek
2个回答

3

它支持系统能够执行的任何内容。你甚至可以使用COBOL编写你的钩子!


好的,我之前认为有一个有限的列表,因为我通常看到示例脚本以 #!/bin/sh 为前缀,我认为这是为了让它知道要将其解释为哪种语言。那么,我需要遵循特定的约定来编写它们吗?例如,Windows 批处理脚本? - shreyansp
2
将SHA-1添加到树中并提交。将提交存储在代码库中。 - torek
1
@shreyansp:除了让你的操作系统运行程序的约定外,你不需要遵循任何其他约定。如果你可以在终端中调用你的程序或脚本,那么 Git 也可以调用它。选择你喜欢的语言并尝试一下吧。 - John Zwinck

1

没有支持语言的全面列表,但是您计算机上可执行的所有内容都可以从git中使用。为了说明这一点,

git config alias.getprop '!powershell -command "& { Get-ItemProperty $1 }"'
git getprop .git/config

上面的代码定义了一个名为'getprop'的新git命令(别名),然后在.git/config输入文件上运行新命令,在win上输出文件属性。总体而言,这对于本地脚本、钩子和别名应该是可以的。但是,如果您计划与他人共享git配置,则需要使用所有同事环境中都安装的脚本语言。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接