Gibt es einen Git-Haken zum Ziehen?


157

Ich muss bei jeder Ausführung einige Aktionen für mein Projekt ausführen (gettext * .mo-Nachrichtendateien vorbereiten) git pull. Gibt es einen geeigneten Git-Haken, den ich bitte für diesen Zweck verwenden könnte?


15
@ Alan: Das ist definitiv kein Duplikat. Diese Frage bezieht sich auf einen Haken auf der lokalen Seite, auf der Sie laufen git pull. Bei dem von Ihnen verknüpften handelt es sich um das Auslösen eines Hakens auf der Fernbedienung , wenn jemand daran zieht. (Und es ist eine sehr seltsame Frage - es impliziert, dass sie ein nicht nacktes zentrales Repo verwenden ...)
Cascabel

2
@ Alan: Leicht genug zu übersehen, wenn Sie überfliegen - hoffe, ich war nicht zu hart. Ich werde nur paranoid, wenn Fragen falsch geschlossen werden, da es so viel länger dauert, bis sich die Stimmen wieder öffnen.
Cascabel

1
Jefromi: Du hast absolut recht. Kein Grund zur Sorge. Ich war nur traurig, dass ich überflogen und das Schließen eingeleitet habe.
Alan Haggai Alavi

Antworten:


184

Die githooksManpage ist eine vollständige Liste der Hooks. Wenn es dort nicht ist, existiert es nicht.

Das heißt, es gibt einen Post-Merge-Hook, und alle Pulls enthalten einen Merge, obwohl nicht alle Merges Pulls sind. Es wird nach dem Zusammenführen ausgeführt und kann das Ergebnis nicht beeinflussen. Es wird nie ausgeführt, wenn es Konflikte gab; Sie müssten das mit dem Post-Commit-Hook aufnehmen, wenn es wirklich wichtig ist, oder es manuell aufrufen.


39
@Jefromi "Alle Pulls beinhalten eine Zusammenführung", auch wenn ich eine Pull-Rebase mache?
FMaz008

11
Es wurde auch festgestellt, dass die Zusammenführung beim Ausführen niemals ausgeführt wird, git pullwenn keine Änderungen vorgenommen werden müssen (Sie sind bereits auf dem neuesten Stand).
Joe Bergantine

11
@jbergantine: Ich glaube, ich war in meiner Antwort ungenau - alle Pulls, die keine No-Ops sind, beinhalten eine Zusammenführung. Aber ... im Allgemeinen denke ich nicht, dass Sie Maßnahmen ergreifen möchten, wenn jemand eine No-Op-Zusammenführung durchführt, wenn Sie versuchen, bei einer Zusammenführung Maßnahmen zu ergreifen. Zum Beispiel wäre es eine Verschwendung für das OP, diese Dateien neu zu erstellen, wenn sich nichts geändert hat.
Cascabel

12
Wenn Sie wirklich jedes Mal etwas tun möchten, wenn Sie ziehen ... könnten Sie den Alias ​​'git pull' verwenden, damit Sie ein Skript aufrufen, das den git pull ausführt, und dann etwas anderes tun
Shadow Radiance

13
git pullwith rebase (entweder mit --rebaseoder mit der Konfiguration pull.rebase=true) enthält keine Zusammenführung und löst den Post-Merge-Hook nicht aus. In diesem Fall können Sie angeben --no-rebase, ob der Hook ausgelöst werden soll, oder den Hook nach dem Umschreiben verwenden.
Victor Schröder

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.