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

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

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

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


BIG阳
浏览 688回答 3
3回答

牧羊人nacy

从理论上讲,您可以hooks使用所有脚本在项目目录中创建一个目录(或您喜欢的任何名称),然后将它们符号链接.git/hooks。当然,每个克隆repo的人都必须设置这些符号链接(尽管你可能会非常喜欢并且有一个部署脚本,克隆人可以运行它来半自动设置它们)。要在* nix上执行符号链接,您需要做的就是:root="$(pwd)"ln&nbsp;-s&nbsp;"$root/hooks"&nbsp;"$root/.git/hooks"使用ln -sf,如果你准备覆盖什么在.git/hooks

守着星空守着你

在Git 2.9中,配置选项core.hooksPath指定自定义钩子目录。将挂钩移动到hooks存储库中的跟踪目录。然后,配置存储库的每个实例以使用跟踪hooks而不是$GIT_DIR/hooks:git&nbsp;config&nbsp;core.hooksPath&nbsp;hooks通常,路径可以是绝对路径,也可以是相对于运行钩子的目录(通常是工作树根;请参阅说明部分man githooks)。

ITMISS

如果您的项目是一个JavaScript项目并且您npm用作包管理器,则可以使用shared-git-hooks来强制执行githooks&nbsp;npm install。
打开App,查看更多内容
随时随地看视频慕课网APP