是否有可能将所有创建 git repo 的方法挂钩?这样我就可以在 repo 被克隆、初始化时运行脚本……(除了移动/复制文件夹之外,还有其他方法吗?)。
我的目的是跟踪所有的存储库,所以我不需要遍历所有目录来运行某些操作(主要是git status
因为我有时会忘记提交更改git gc --auto
)。
答案1
钩子(当前)是按存储库专门配置的,因此在创建存储库之前不能有活动的钩子。
如果你只想为所有新存储库初始化一些存储库特定的设置,你可能可以使用存储库模板机制。
通过使用您自己的模板,您可以
- 安装激活的钩子(通过提供文件
<template‑dir>/hooks/<hook‑name>
), - 设置配置变量(通过提供
<template‑dir>/config
文件) - 配置每个存储库的排除规则或属性(通过提供
<template‑dir>/info/exclude
或<template‑dir/info/attributes>
文件)。
目录中的任何配置文件.git
都可以放在模板中,作为从模板初始化的新存储库中该文件的初始副本。我想你甚至可以提供初始对象和引用。
一旦有了包含自定义内容的模板目录,就必须指定git init
它git clone
的位置。这可以通过选项显式完成--template
(Git 0.99.4 或更高版本),或通过环境变量隐式完成(Git 1.5.0 或更高版本),或通过在“全局”(每个用户)或“系统”Git 配置文件中GIT_TEMPLATE_DIR
设置配置变量隐式完成(即或(因安装而异);Git 1.7.1 或更高版本)。init.templatedir
~/.gitconfig
/etc/gitconfig