我目前通过在./git/hooks
下创建预提交挂钩,将我的存储库配置为使用Rubocop进行预提交linting
但是,我希望每个在我团队工作的人都可以使用它,因此我想将这些更改推送到Github。
如何在不提交.git
文件夹的情况下将与预提交linting相关的更改推送到远程存储库?
我认为使用git hooks是相当常见的做法,例如,检查hooks/
目录。然后,用户可以从.git/hooks/foo
到hooks/foo
进行符号链接。
您甚至可以考虑在存储库中放置一个shell脚本,以便在用户运行时创建必要的符号链接。例如,hooks/setup.sh
可能运行像ln -s ./foo ../.git/hooks/foo
。
但最终,每个用户仍然需要采取一些行动来建立自己的钩子。 (有关更多信息,请参阅this question)。
您可以使用托管解决方案进行预提交钩子管理,如pre-commit。或者像Datree.io这样的服务器端git-hook的集中式解决方案。它有内置的政策,如:
它不会取代你所有的钩子,但它可能会帮助你的开发人员使用最明显的钩子,而不需要在每个开发人员的计算机/ repo上安装钩子。
免责声明:我是Datrees的创始人之一