Git钩子是Git在执行特定操作之前或之后运行的脚本。 如果你写了一个脚本并保存为<repository_name>/.git/hooks/pre-commit,那么git会在提交前运行它,所以为你正在使用的操作系统写一个简单的脚本,在那个子文件夹上运行jshint,并保存到那个路径。 Git不会使用任何参数来运行pre-commit钩子,你可以使用git命令来判断仓库的状态(作为commit的一部分添加的更改仍然只是暂存,并可以通过--cached访问)。如果你做了任何更改,并希望它们成为commit的一部分,你需要在脚本退出之前添加它们。 你正在使用C#,所以你应该意识到git钩子在windows上有点古怪:Executing Git hooks on Windows
5条答案
按热度按时间ha5z0ras1#
如果您使用pre-commit,指定
files
以包括(或exclude
以排除)特定目录,例如只在my_dir
中运行钩子:或者在
my_dir
内以外的任何地方运行:如果您有一个很长的排除列表,请使用详细正则表达式:
你也可以只把这些应用到特定的钩子上,只要做:
h9a6wy2h2#
Here是很好的本机解决方案。
我用这样的东西
sauutmhj3#
你可以使用
git log
来检查子目录中的最新提交是否与仓库根目录中的最新提交相匹配:vdgimpew4#
如果您使用的是比v1.1.0更新的pre-commit,那么您可以在位于repo根文件夹中的
.pre-commit-config.yaml
中添加一个exclude
字段。如下所示:
在此查看文档
nimxete25#
Git钩子是Git在执行特定操作之前或之后运行的脚本。
如果你写了一个脚本并保存为
<repository_name>/.git/hooks/pre-commit
,那么git会在提交前运行它,所以为你正在使用的操作系统写一个简单的脚本,在那个子文件夹上运行jshint,并保存到那个路径。Git不会使用任何参数来运行pre-commit钩子,你可以使用git命令来判断仓库的状态(作为commit的一部分添加的更改仍然只是暂存,并可以通过--cached访问)。如果你做了任何更改,并希望它们成为commit的一部分,你需要在脚本退出之前添加它们。
你正在使用C#,所以你应该意识到git钩子在windows上有点古怪:Executing Git hooks on Windows