Einführung in Git-Hooks

Abgeschlossen

Continuous Delivery erfordert ein erhebliches Maß an Automatisierung. Sie können keine kontinuierliche Bereitstellung (Continuous Delivery) durchführen, wenn Sie nicht über eine hochwertige Codebasis verfügen. Das ist der Grund, warum Git so gut ist.

Damit können Sie die meisten Aufgaben beim Einchecken in Ihre Codebasis automatisieren. Vor dem Committen des Codes in Ihr lokales Repository, und erst recht in das Remoterepository.

Git-Hooks

Git-Hooks sind ein Mechanismus, mit dem Code vor oder nach bestimmten Git-Lebenszyklusereignissen ausgeführt werden kann.

Beispielsweise könnte ein Hook in das „commit-msg“-Ereignis erfolgen, um zu überprüfen, ob die Struktur der Commitnachricht das empfohlene Format einhält.

Die Hooks können beliebiger ausführbarer Code sein, einschließlich Shell-, PowerShell-, Python- oder anderer Skripts. Sie können aber auch eine binäre ausführbare Datei sein. Alles möglich!

Die einzigen Kriterien sind, dass Hooks im Ordner „.git/hooks“ im Repositorystamm gespeichert werden müssen. Außerdem müssen sie entsprechend den zugehörigen Ereignissen benannt werden (Git 2.x):

  • applypatch-msg
  • pre-applypatch
  • post-applypatch
  • pre-commit
  • prepare-commit-msg
  • commit-msg
  • post-commit
  • pre-rebase
  • post-checkout
  • post-merge
  • pre-receive
  • aktualisieren
  • post-receive
  • post-update
  • pre-auto-gc
  • post-rewrite
  • pre-push

Praktische Anwendungsfälle für die Verwendung von Git-Hooks

Da Git-Hooks die Skripts für den spezifischen Ereignistyp ausführen, für den sie aufgerufen werden, können Sie mit Git-Hooks praktisch alles ausführen.

Einige Beispiele dafür, wo Sie Hooks verwenden können – zum Erzwingen von Richtlinien, zum Sicherstellen von Konsistenz und zum Steuern Ihrer Umgebung:

  • Unter „Erzwingen von Vorbedingungen für das Zusammenführen“
  • Überprüfen der Zuordnung der Arbeitselement-ID in Ihrer Commitnachricht
  • Verhindern des Committens von fehlerhaftem Code durch Sie und Ihr Team
  • Senden von Benachrichtigungen an den Chatraum Ihres Teams (Teams, Slack, HipChat usw.)

In der nächsten Einheit erfahren Sie, wie Git-Hooks implementiert werden.