He escrito un gancho post-commit de Git y funciona correctamente. Sin embargo, quiero agregar este enlace para aplicarlo a todos los repositorios git actuales (y futuros) en los que estoy trabajando. Intenté agregar el gancho a mi en ~/.git/hooks/lugar del directorio de ganchos en el directorio del proyecto, sin embargo, esto no pareció funcionar.
¿Hay alguna forma de crear ganchos Git globales que se apliquen a todos los repositorios en mi sistema (sin tener que copiarlos en cada directorio de proyecto)? Si no, ¿cuál sería la mejor solución en el futuro, tal vez una plantilla git-init?

Respuestas:
Con git 2.9+ (junio de 2016), todo lo que haría es:
Consulte " cambiar los ganchos de git predeterminados ": esto se ha hecho para administrar los ganchos centralizados.
fuente
/.git/hooks/pre_commitpuedo señalarlo?A partir de git 1.7.1, puede configurar init.templatedir en su gitconfig para decirle a git dónde buscar plantillas.
Configúrelo así:
Posteriormente, los nuevos repositorios que cree o clone utilizarán este directorio para las plantillas. Coloque los ganchos que desee
~/.git_template/hooks. Los repositorios existentes se pueden reinicializar con las plantillas adecuadas ejecutándosegit initen el mismo directorio.giten el que se encuentra.Para las versiones de git anteriores a 1.7.1, la ejecución
git init --template ~/.git_templatefuncionará si es como yo y aún desea administrar su.git_templatedirectorio junto con el resto de sus archivos de puntos. También puede usar el$GIT_TEMPLATE_DIRentorno para sabergit initdónde está su directorio de plantillas.fuente
git initen un repositorio existente lo borra, no lo hace , consulte: stackoverflow.com/questions/5149694/…git initrealidad no actualizó los ganchos para mí. Parece que no sobrescribirá los archivos que ya están allí. stackoverflow.com/questions/10791486/ . En su lugar, primero debe eliminar los archivos de enlace antiguos.Si los quiere en todas partes de su sistema (incluidos los usuarios además de usted), puede modificar el contenido del directorio de plantilla instalado: esos están en
$PREFIX/share/git-core/templates/hooks, dónde$PREFIXestá probablemente/usr/localo/usr.Si desea que esto sea solo para usted, entonces sí, lo más simple sería la
--templateopción de git-init. Puede mantener fácilmente un directorio de plantillas personales que tenga enlaces simbólicos a la versión instalada de los valores predeterminados que desea mantener (enlaces individuales, el directorio de información ...) y luego su propio contenidohooks/post-commity cualquier otra cosa que desee personalizar.fuente
git initnuevamente y agregó mi nuevo gancho./Applications/SourceTree.app/Contents/Resources/git_local/share/git-core/templates/hooksmingw64\share\templates\hooks(o mingw32 para 32 bits)mingw64\share\git-core\templates\hooks(gfw 2.25)Un enfoque minimalista es crear un
git_hooks/directorio en su repositorio para rastrear los ganchos que escribe para ese proyecto, llamarlo la atención de los futuros usuarios al mencionarlo en unREADMEarchivo y confiar en ellos para que hagan lo correcto después de que hayan clonado. He reflexionado sobre esto por un tiempo y elegí un enfoque incremental. En el futuro, podría considerar usar una herramienta como git-hooks .fuente