Ich bin neu in Git-Hooks und serverseitiger Git-Funktionalität. Ich habe an clientseitigem Git gearbeitet, um meinen Code festzuschreiben und zu pushen, und wir verwenden Git-Merge Tools für das Application Lifecycle Management (ALM).. Ich versuche, Git-Hooks zu schreiben, um neue/geänderte Dateien im Repository zu testen. Ich kann clientseitige Hooks wie schreiben und testen pre-commit
Jetzt muss ich einen serverseitigen Git-Hook hinzufügen, um Dateien vor dem Zusammenführen mit dem Master zu überprüfen, da es eine Änderung zum Überspringen der clientseitigen Überprüfung gibt -no-verify
Möglichkeit. Wenn ich einige Git-Hook-Tutorials durchgehe, pre-push
Hook ist der serverseitige Hook. Ich habe versucht, einen Pre-Push-Hook zu erstellen, und es funktioniert auf der Client-Seite. Nun, wie kann es als serverseitiger Hook eingerichtet und erzwungen werden, Dateien zu überprüfen, wenn Benutzer versuchen, Änderungen sogar mit zu pushen --no-verify
Option (sollte nicht auf dem Client gesteuert werden).
Meine große Frage ist, wie der Server-Hook ausgelöst wird, wenn wir das tun git push
von der lokalen Filiale/dem Repo.
Haken erstellen:
Erstellte einen Hook namens pre-commit und platzierte ihn unter einem Ordner git_hooks/pre-push
und auch drin .git/hooks/pre-push
. Jetzt habe ich einen symbolischen Link für mein Pre-Push-Skript erstellt. Also, wann immer ich es tue git push
Es wird .git/hooks/pre-push auslösen, was ein symbolischer Link für mein Skript ist git_hooks/pre-push
BEARBEITEN:
ich dachte pre-push
Und pre-receive
Haken sind die gleichen, da beide ausgelöst werden git push
Befehl aber pre-push
arbeitet nur clientseitig, pre-recieve
arbeitet serverseitig. ich erschuf pre-receive
Hook und schob es zum Master-Zweig. Jetzt, wenn ich es tue git push
das bekommen Fehler: Hooks können nicht erzeugt werden/pre-receive: Keine solche Datei oder Verzeichnis.
Ich versuche das bei beiden Windows Und Linux Plattformen. Unter Windows erhalte ich diesen Fehler, unter Linux wird er nicht einmal ausgelöst. Ich platzierte pre-receive
Haken Sie den Master-Branch auf beiden Plattformen an.
Habe ich deine Frage beantwortet?
– Eugen Konkow
25. Mai 2018 um 7:31 Uhr
@für Leute, die eine Antwort suchen: Fehler: Hooks können nicht erzeugt werden/pre-receive: Keine solche Datei oder Verzeichnis. Der Grund für diesen Fehler war falsch SHEBANG. Ich habe es geändert und erhalte keinen Fehler und der Pre-Receive-Hook funktioniert einwandfrei. Wir sollten platzieren
pre-receive
Haken Sie den Server .git/hook Ordner ein, dann wird dieser Hook immer dann ausgelöst, wenn Sie versuchen, Ihren Änderungsserver zu pushen. Es ist nicht erforderlich, dies im lokalen Repo zu haben.– Techie
28. Mai 2018 um 7:27 Uhr