可以将Git钩子脚本与存储库一起管理吗?我们想制作一些我们可以共享的基本钩子脚本 - 例如预格式化提交消息。Git有通常存储在其下的钩子脚本<project>/.git/hooks/。但是,当人们进行克隆并且它们不受版本控制时,这些脚本不会传播。有没有一种好方法可以帮助每个人获得正确的钩子脚本?我可以让这些钩子脚本指向我的仓库中的版本控制脚本吗?
3 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
从理论上讲,您可以hooks
使用所有脚本在项目目录中创建一个目录(或您喜欢的任何名称),然后将它们符号链接.git/hooks
。当然,每个克隆repo的人都必须设置这些符号链接(尽管你可能会非常喜欢并且有一个部署脚本,克隆人可以运行它来半自动设置它们)。
要在* nix上执行符号链接,您需要做的就是:
root="$(pwd)"ln -s "$root/hooks" "$root/.git/hooks"
使用ln -sf
,如果你准备覆盖什么在.git/hooks
守着星空守着你
TA贡献1799条经验 获得超8个赞
在Git 2.9中,配置选项core.hooksPath
指定自定义钩子目录。
将挂钩移动到hooks
存储库中的跟踪目录。然后,配置存储库的每个实例以使用跟踪hooks
而不是$GIT_DIR/hooks
:
git config core.hooksPath hooks
通常,路径可以是绝对路径,也可以是相对于运行钩子的目录(通常是工作树根;请参阅说明部分man githooks
)。
ITMISS
TA贡献1871条经验 获得超8个赞
如果您的项目是一个JavaScript项目并且您npm
用作包管理器,则可以使用shared-git-hooks来强制执行githooks npm install
。
- 3 回答
- 0 关注
- 687 浏览
添加回答
举报
0/150
提交
取消