当前位置:  开发笔记 > 编程语言 > 正文

可以将Git钩子脚本与存储库一起管理吗?

如何解决《可以将Git钩子脚本与存储库一起管理吗?》经验,为你挑选了5个好方法。

我们想制作一些我们可以共享的基本钩子脚本 - 例如预格式化提交消息.Git有通常存储在其下的钩子脚本/.git/hooks/.但是,当人们进行克隆并且它们不受版本控制时,这些脚本不会传播.

有没有一种好方法可以帮助每个人获得正确的钩子脚本?我可以让这些钩子脚本指向我的仓库中的版本控制脚本吗?



1> Max Shenfiel..:

在Git 2.9中,配置选项core.hooksPath指定自定义钩子目录.

将挂钩移动到hooks存储库中的跟踪目录.然后,配置存储库的每个实例以使用跟踪hooks而不是$GIT_DIR/hooks:

git config core.hooksPath hooks

通常,路径可以是绝对路径,也可以是相对于运行钩子的目录(通常是工作树根;请参阅说明部分man githooks).


...和指向的钩子目录可以是单独的钩子存储库;)
那么,当你进行git克隆时,这个配置参数会自动设置吗?
通常,git配置变量不能由您正在克隆的存储库设置.我认为这是为了防止执行任意代码.git config通过挂钩,提交消息上的用户名和其他重要功能来控制代码的执行.

2> mipadi..:

从理论上讲,您可以hooks使用所有脚本在项目目录中创建一个目录(或您喜欢的任何名称),然后将它们符号链接.git/hooks.当然,每个克隆了repo的人都必须设置这些符号链接(尽管你可能会非常喜欢并且有一个部署脚本,克隆人可以运行它来半自动设置它们).


这是非常重要的,所以我要包含一个关于如何正确符号链接的链接:http://stackoverflow.com/questions/4592838/symbolic-link-to-a-hook-in-git
git version 2.9现在有一个配置选项,用于`core.hooksPath`来设置.git之外的文件以链接到hooks文件夹.

3> kilianc..:

如果您的项目是一个JavaScript项目并且您npm用作包管理器,则可以使用shared-git-hooks来强制执行githooks npm install.


现在我知道是谁在将这些废话添加到.git / hooks中。

4> 小智..:

如何git-hooks,它将.git/hooks调用路由到项目目录下的脚本githooks.

还有很多功能可以让您最大限度地减少复制和符号链接挂钩.



5> yuranos87..:

大多数现代编程语言,或者更确切地说,它们的构建工具,都支持管理git hook的插件。这意味着您只需要配置package.json,pom.xml等,团队中的任何人就别无选择,除非他们更改构建文件。该插件将为您添加内容到.git目录。

例子:

https://github.com/rudikershaw/git-build-hook

https://github.com/olukyrich/githook-maven-plugin

https://www.npmjs.com/package/git-hooks

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有