github支持precommithooks吗?

时间:2011-12-16 03:48:17

标签: github pre-commit-hook

目前我们正在使用SVN。 我想开始使用GitHub,但一个绝对要求是我们需要像我们现在一样对代码进行预先(premerge)验证。 GitHub是否支持precommithooks(premergehooks)?

我们是一个由5名开发人员组成的团队。我们达成了一个协议,所有代码(JavaScript)都应该通过类似JSLint的验证。事实证明,自愿验证不起作用,因为它很容易被遗忘。我们怎样才能确保其他人可用的代码能够保证对JSLint(或类似代码)进行验证?

5 个答案:

答案 0 :(得分:12)

我正在寻找的概念是prereceive hook

答案 1 :(得分:2)

我不相信github支持预提交挂钩。但是,git核心确实如此。您可以在本地设置预提交挂钩,或者在将分支合并到主github之前将它们作为测试应用。

答案 2 :(得分:2)

不,GitHub不支持预提交挂钩。怎么会这样呢?提交是在你的计算机上进行的,你真的想让GitHub在你的机器上运行任意代码吗?

答案 3 :(得分:2)

我认为你遗漏了一些关于git的基本信息。它不是一个集中模型(好吧,可以,但是如果你打算以这种方式使用它,那么github可能是错误的方法)。如果您正在使用github,正确的方法是:

  1. 托管您的主要仓库
  2. 让你的开发人员各自创建自己的fork
  3. 让他们高兴地劈开,承诺并推动他们内心的内容
  4. 当他们认为某个功能已准备就绪时,他们会向您(维护人员)发送一个拉取请求,您可以自行验证该请求以确保稳定性。然后将它们的更改合并/转换为主仓库。
  5. 当然,有许多方法可以给猫皮肤。但是,当你谈到“真正的git”(开源社区所采用的那种)时,集中的“检查它并且该死的 - 更好的工作”模型有点困难,尤其是当涉及到更大的项目时。

答案 4 :(得分:2)

我认为这篇文章描述了一个非常好的工作流程,可以作为自动化的基础:

http://scottchacon.com/2011/08/31/github-flow.html

主要思想是你使用上面提到的pull请求,但你也可以使用一个服务,可以使用github api来获取或拉动分支,进行请求,合并,测试,验证然后推送到目标分支。