全局 git 钩子

tig*_*tig 4 git hook

是否可以挂钩所有创建 git repo 的方法?所以我可以在 repo 被克隆、初始化时运行脚本......(还有其他方法吗,除了移动/复制文件夹?)。

我的目的是跟踪所有存储库,因此我不需要遍历所有目录来运行某些操作(主要是git status因为我有时会忘记提交更改和git gc --auto)。

Chr*_*sen 5

挂钩(当前)是针对每个存储库专门配置的,因此在创建存储库之前不能有活动挂钩。

如果您只想为所有新存储库相同地初始化一些特定于存储库的设置,您可以使用存储库模板机制

通过使用您自己的模板,您可以

  • 安装激活的钩子(通过提供<template?dir>/hooks/<hook?name>文件),
  • 设置配置变量(通过提供<template?dir>/config文件),以及
  • 配置每个存储库排除规则或属性(通过提供一个<template?dir>/info/exclude<template?dir/info/attributes>文件)。

位于.git目录中的任何配置文件都可以放在模板中,作为该文件在从模板初始化的新存储库中的初始副本。我想你甚至可以提供初始对象和引用。

一旦你有一个模板目录由你自定义你必须告诉git initgit clone在哪里可以找到它。这可以通过--template选项(Git 0.99.4 或更高版本)显式完成,或通过GIT_TEMPLATE_DIR环境变量(Git 1.5.0 或更高版本)隐式完成,或通过init.templatedir在“全局”(每个用户)或“系统”Git 配置文件(即~/.gitconfig/etc/gitconfig(因安装而异);Git 1.7.1 或更高版本)。