向代码库添加git钩子

4

我想给我的项目添加一个git钩子。

我已经创建了它(.git/hooks/pre-push),并且在本地工作正常。

现在我该如何将其包含到仓库中,这样当我将项目推送到GitHub时,其他人在克隆仓库时可以获取此钩子?

即使我没有.gitignore文件,.git文件夹也会自动忽略。

谢谢。

1个回答

4
目录 .git/hooks 不属于您的工作目录,因此不会被提交或推送到仓库中。您可以在工作目录中创建shell脚本文件以创建所需的hooks,然后要求其他开发人员或用户执行该文件并创建hooks。
此外,GitHub和Bitbucket等平台允许您创建在特定条件下触发的Web hooks。在这里,您可以了解更多关于Web hooks的信息:https://developer.github.com/webhooks/ 更新:即使在免费服务中使用Bitbucket,也有一个设置权限的功能,可以限制哪个用户可以将内容推送到哪个分支。请查看限制推送权限 我的常规做法是为每个开发人员或公司创建单独的分支,并允许他们只能推送自己的分支。然后项目经理或主要开发人员可以决定何时将哪个分支合并到主分支中。通过这种方式,代码非常容易管理。
更新2:GitHub缺乏Bitbucket的某些功能,但在这种情况下,如果您要求所有开发人员分叉存储库,然后在自己的分叉存储库中工作,一旦准备好创建拉取请求,项目经理或主要开发人员可以审查和合并存储库或创建待解决的问题。这被称为“fork and pull”GitHub模型,在这里,您可以了解更多相关信息:https://help.github.com/articles/using-pull-requests/#fork--pull

感谢您的回复。GH Web-hooks并不是我正在寻找的,因为我需要防止推送到特定分支。 您建议的解决方案使开发人员有能力不创建钩子,所以它并没有真正解决我的问题。 我会继续寻找其他解决方案。 - Sig
@macsig 请检查更新。 - Antoan Milkov
感谢更新。然而,我们使用GitHub,并且非常满意,因此我暂时没有计划转换到BitBucket。 - Sig
@macsig 第二次更新 - Antoan Milkov
谢谢回复。我决定使用git hooks和一个符号链接它们的shell脚本。 - Sig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接