Git Hooks

Git-Hooks sind Skripte, die bei bestimmten Ereignissen in einem Git-Repository automatisch ausgeführt werden, u.a.:

Befehl

Hook

comit

comit-msg, pre-commit

merge

pre-merge, comit-msg

rebase

pre-rebase

pull

pre-merge, comit-msg

push

pre-push

Sie können sich entweder in lokalen oder serverseitigen Repositories befinden. So können Git-Repositories individuell angepasst und benutzerdefinierte Aktionen ausgelöst werden.

Git Hooks befinden sich im Verzeichnis .git/hooks/. Beim Anlegen eines Repository werden dort auch bereits einige Beispielskripte angelegt:

.git/hooks/
├── applypatch-msg.sample
├── commit-msg.sample
├── fsmonitor-watchman.sample
├── post-update.sample
├── pre-applypatch.sample
├── pre-commit.sample
├── pre-merge-commit.sample
├── prepare-commit-msg.sample
├── pre-push.sample
├── pre-rebase.sample
├── pre-receive.sample
└── update.sample

Damit die Skripte ausgeführt werden, muss lediglich der Suffix .sample entfernt werden und ggf. die Dateiberechtigung ausführbar sein, z.B. mit chmod +x .git/PREPARE-COMMIT-MSG.

Die integrierten Skripte sind Shell- und Perl-Skripte, es können jedoch beliebige Skriptsprachen verwenden werden. Dabei bestimmt die Shebang-Zeile (#!/bin/sh), wie die Datei interpretiert werden soll.

Die Skripte können jedoch nicht in das serverseitige Repository kopiert werden.