推送预提交 git 挂钩 (Rubocop)

Pushing pre-commit git hook (Rubocop)

我目前通过在 ./git/hooks

下创建 pre-commit 挂钩,将我的存储库配置为使用 Rubocop 进行预提交 linting

但是,我希望我团队中的每个人都可以使用它,因此我想将这些更改推送到 Github。

如何在不提交 .git 文件夹的情况下将与预提交 linting 相关的更改推送到远程存储库?

我认为使用 git 挂钩是相当常见的做法,例如,签入 hooks/ 目录。然后,用户可以从 .git/hooks/foo 符号链接到 hooks/foo

您甚至可以考虑在存储库中放置一个 shell 脚本,当用户 运行 使用它时创建必要的符号链接。例如,hooks/setup.sh 可能 运行 类似于 ln -s ./foo ../.git/hooks/foo.

但最终,每个用户仍然需要采取一些行动来设置自己的挂钩。 (有关详细信息,请参阅 this question)。

您可以使用托管解决方案进行预提交挂钩管理,例如 pre-commit。 或者服务器端 git-hooks 的集中式解决方案,例如 Datree.io。 它具有内置策略,例如:

  1. 检测并预防merging of secrets
  2. 强制执行适当的 Git user configuration.
  3. 强制执行 Jira ticket integration - 在拉取请求名称/提交消息中提及票号。

它不会替换您的所有挂钩,但它可以帮助您的开发人员使用最明显的挂钩,而无需在每个挂钩上安装挂钩的配置地狱 开发人员 computer/repo.

免责声明:我是Datrees创始人之一