提交git hook到仓库

3
我有一个关于配置 tslint 和 pre-commit hook 的问题。
问题是我创建了一个工作良好的 tsconfig 文件。并添加了一个 bash 脚本,如果 tslint 返回任何错误,则不能提交。
问题是我需要提交此 hook 文件给团队中的其他人。这应该自动替换 .git 文件夹中的 pre-commit hook。我只找到了一个 bash 脚本,可以检查我的 hooks 文件夹中的钩子,并将它们替换为 .git 文件夹中的钩子。如何提交此文件,并为我的团队“自动”执行此操作?

这回答了你的问题吗?可以将Git钩子脚本与存储库一起管理吗? - andruso
1个回答

6
由于安全原因,“提交钩子”是不允许的。如果允许,那么只要有人克隆您的存储库并运行基本操作,就可以在他们的计算机上执行任意代码。
处理此问题的两种常见方法是:
1. 记录人们必须在其存储库中执行的操作以使钩子生效。 2. 自动化人们必须执行的操作。例如,在使用 Makefile 的项目中,我在 Makefile 中添加了以下内容,用户只需运行“make setup-pre-push-hook”即可使钩子在推送时运行“make check”:
``` setup-pre-push-hook: setup-pre-push-hook-file grep -q 'make check' .git/hooks/pre-push || \ printf '\n%s\n\n' 'make check' >> .git/hooks/pre-push
setup-pre-push-hook-file: test -f .git/hooks/pre-push || echo '#!/bin/sh' > .git/hooks/pre-push test -x .git/hooks/pre-push || chmod +x .git/hooks/pre-push ```

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