Ganchos são (atualmente) configurados exclusivamente por repositório, então não pode haver ganchos ativos antes de um repositório ser criado.
Se você quiser apenas inicializar algumas configurações específicas do repositório de forma idêntica para todos os novos repositórios, você poderá usar o mecanismo de modelo de repositório .
Usando seu próprio modelo, você pode
- instalar ganchos ativados (fornecendo um arquivo
<template‑dir>/hooks/<hook‑name>
), - definir variáveis de configuração (fornecendo um arquivo
<template‑dir>/config
) e - configurar regras ou atributos de exclusão por repositório (fornecendo um arquivo
<template‑dir>/info/exclude
ou<template‑dir/info/attributes>
).
Qualquer arquivo de configuração que resida em um diretório .git
pode ser colocado em um modelo para servir como a cópia inicial desse arquivo em novos repositórios inicializados a partir do modelo. Eu suponho que você poderia até fornecer objetos iniciais e refs.
Quando você tiver um diretório de modelos criado com suas personalizações, deverá informar git init
e git clone
onde encontrá-lo. Isso pode ser feito explicitamente com a opção --template
(Git 0.99.4 ou posterior), ou implicitamente com a variável de ambiente GIT_TEMPLATE_DIR
(Git 1.5.0 ou posterior), ou implicitamente definindo a variável de configuração init.templatedir
no Arquivos de configuração Git "globais" (por usuário) ou "sistema" (ou seja, ~/.gitconfig
ou /etc/gitconfig
(varia de acordo com a instalação); Git 1.7.1 ou posterior).