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?
88
Antworten:
Nein. Hooks sind pro Repository und werden niemals gepusht. In ähnlicher Weise wird die Repo-Konfiguration weder gepusht, noch ist etwas drin
.git/info
oder 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).
quelle
.githooks
Verzeichnis hinzufügen, das versioniert wird, dann entweder sym-link oder Wrapper-Hook-Skripte von innen erstellen.git
. Das Klonen wird nicht automatisch.githooks
verkabelt, aber sobald es verkabelt ist, können Sie neue Versionen der Hook-Skripte pushen und ziehen.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/
.quelle
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.