Werden Git-Hooks auf die Fernbedienung gedrückt, wenn ich Git-Push mache?

88

Wenn ich in meinem lokalen Repository in repo / .git / hooks / post-commit ein neues Hook-Skript erstelle und dann "git push" ausführe, werden die Hooks auf die Fernbedienung übertragen? Wenn die anderen Entwickler dann "git pull" vom selben Ursprung ausführen, bekommen sie dann meine neuen Hooks?

Slacy
quelle
3
Vielleicht diese Hilfe stackoverflow.com/questions/3462955/…
René Höhle
Verwandte Themen (mit sehr nützlichen Antworten): Können Git-Hook-Skripte zusammen mit dem Repository verwaltet werden?
23. März 777,

Antworten:

74

Nein. Hooks sind pro Repository und werden niemals gepusht. In ähnlicher Weise wird die Repo-Konfiguration weder gepusht, noch ist etwas drin .git/infooder eine Reihe anderer Dinge.

Durch Drücken und Ziehen werden nur Zweige / Tags ausgetauscht und Objekte festgeschrieben (und alles, was mit einem Festschreiben erreichbar ist, z. B. Bäume, Blobs).

Lily Ballard
quelle
14
Gibt es eine Möglichkeit, Haken in der Mitte zu haben und sie an jedem Klon zu ziehen und anzuwenden.
F1wade
3
@ f1wade Sie können ein .githooksVerzeichnis hinzufügen, das versioniert wird, dann entweder sym-link oder Wrapper-Hook-Skripte von innen erstellen .git. Das Klonen wird nicht automatisch .githooksverkabelt, aber sobald es verkabelt ist, können Sie neue Versionen der Hook-Skripte pushen und ziehen.
Philip Couling
45

Nein, Git-Hooks werden nicht gedrückt oder gezogen, da sie nicht Teil des Repository-Codes sind.

In der Dokumentation finden Sie eine Liste einfacher clientseitiger und serverseitiger Hooks.

Wenn Sie einige Hooks für alle Clients aktivieren möchten, die aus einem bestimmten Repository klonen oder ziehen, müssen Sie die Hooks zu Ihrer Codebasis hinzufügen und dann ein eigenes Skript erstellen, in das Sie sie kopieren oder von ihnen aus verknüpfen können repo/.git/hooks/.

Marco Leogrande
quelle
3
aber wie wird das kopierskript aufgerufen?
Adam Johns
5
@AdamJohns Es wird vom Benutzer / Entwickler aufgerufen, wahrscheinlich in Form eines setup.sh, das der Entwickler ausführt, wenn er das Repository zum ersten Mal klont. Danach können Aktualisierungen der Hooks automatisch erfolgen, indem beispielsweise ein Hook ein Skript ausführt, das sie nach jedem Pull erneut aktualisiert. Sie müssen sich also nicht auf den Entwickler verlassen, um dies selbst zu tun.
cm92