gpt4 book ai didi

git - 创建预推 Hook 以进行 lint/测试

转载 作者:太空狗 更新时间:2023-10-29 13:03:16 25 4
gpt4 key购买 nike

我想知道创建预推钩子(Hook)(在 git 仓库中)的最佳方法是什么,它执行以下操作:

  • 运行 JSHint/JSLint
  • 运行单元和功能测试
  • 如果一切正常则接受更新
  • 否则拒绝更新

最佳答案

您可以使用 Git 预提交 Hook 来执行此操作。我已经设置了预提交 Hook 来检查调试语句等。

像这样的客户端 Hook 属于 .git/hooks 文件夹。但是由于您无法将 .git 存储库中的任何内容提交到版本控制中,您有点卡住了。

然后你需要做的是保留你的 shell 命令来检查你的 git 仓库中某个文件夹的正确性,比如顶级 tools 目录。

然后“只是”告诉人们通过以下方式安装它:

chmod u+x tools/precommit-checks.sh

ln -s $PWD/tools/precommit-checks.sh .git/hooks/pre-commit

并且,假设每个人都安装了它,您可以按照您的要求进行检查。

可能更好的方法是只捕获这个服务器端:让某种持续集成服务器从您的 Github 存储库中提取最新的提交并检查代码库。

不,它不会为您提供您想要的“拒绝推送”功能。

假设您要自己托管 git 存储库,还有另一个问题:我认为服务器上的预接收 Hook 会在 Hook 需要时挂起客户端。 (这 被记录为对于 post-recieve Hook 是正确的,所以我猜这里也是如此)。因此,如果 CI 测试需要 2 分钟,一些开发人员正在键入 git push 并等待 2 分钟让他们的控制台再次执行任何操作。

因此,使用 CI 服务器或其他质量测试进行推送后分析可能更好。

关于git - 创建预推 Hook 以进行 lint/测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com