19

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

我们是一个由 5 名开发人员组成的团队。我们达成协议,所有代码(JavaScript)都应该通过类似 JSLint 的验证。自愿验证已被证明是行不通的,因为它很容易被遗忘。我们如何确保其他人可以使用的代码可以保证通过 JSLint(或类似的)进行验证?

4

5 回答 5

15

我一直在寻找的概念是prereceive hook

于 2012-12-31T06:28:37.803 回答
2

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

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

主要思想是您使用上面提到的拉取请求,但您也可以拥有一个服务,该服务可以使用 github api 获取或拉取发出请求、合并、测试、验证然后推送到目标分支的分支。

于 2012-12-10T20:02:07.347 回答
2

我认为您缺少有关 git 的一些基本知识。它不是一个集中式模型(好吧,它可以,但如果你打算以这种方式使用它,那么 github 可能是错误的方法)。如果您使用的是 github,那么正确的做法是:

  1. 托管您的主仓库
  2. 让您的开发人员各自创建自己的分叉
  3. 让他们愉快地离开,承诺和推动他们内心的满足
  4. 当他们认为某个功能已准备就绪时,他们会向您(维护者)发送一个拉取请求,您自己在一边验证该请求以确保稳定性。然后你将他们的更改合并/变基到主仓库中。

自然有很多方法可以给猫剥皮。但是当你谈论“真正的 git”(开源社区使用的那种)时,集中的“check-it-in-and-it-damned-well-better-work”模型有点困难,尤其是当涉及到更大的项目时。

于 2011-12-16T04:05:39.170 回答
2

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

于 2011-12-16T03:51:24.337 回答
1

不,GitHub 不支持预提交挂钩。那怎么行?提交发生在您的计算机上,您真的要允许 GitHub 在您的计算机上运行任意代码吗?

于 2011-12-16T03:51:28.083 回答