it-swarm.com.de

Wie schreibe ich einen Pre-Merge-Hook in Git?

Die Frage sagt alles. Gibt es eine Möglichkeit, eine Aktion vor einer Zusammenführung auszuführen? Ich vermute, es gibt eine Möglichkeit, einen pre-commit-Hook zu verwenden, aber ich bin mir nicht ganz sicher.

36
joshin4colours

Sie können versuchen, den prepare-commit-msg-Hook zu verwenden. Das zweite Argument ist merge "wenn das Festschreiben eine Zusammenführung ist oder eine .git/MERGE_MSG-Datei vorhanden ist". Ein Exit-Status ungleich Null bricht das Festschreiben ab.

Ich denke nicht, dass dies mit einer Zusammenführung mit schnellem Vorlauf funktionieren wird, da es keine Commit-Nachricht gibt.

Weitere Informationen zu Hooks: https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg

16
Kousha

Eine weitere schöne Problemumgehung wäre das Hinzufügen eines Shell-Skripts. Benennen Sie es nach Belieben Fügen Sie dem Skript dann folgende Zeilen hinzu:

git() {
    if [ "$1" == "merge" ]; then
        echo "seems to work like a charme"
    fi
    command git "[email protected]"
}

git "[email protected]"

Dann machen Sie eine

alias git="./my-pre-merge-script.sh"

Dann bist du gut zu gehen. Sie haben gerade Ihren eigenen Pre-Merge-Hook hinzugefügt .. Ich weiß, dass Sie keinen Zugriff auf die Argumente haben, die Git an einen echten Pre-Merge-Hook übergeben würde ; Ich persönlich bin mit diesem Ansatz sehr zufrieden: Ich habe zwei oder drei ganze Tage gebraucht, um etwas für das Pre-Merge zu finden, dann musste ich mit der Pre-Commit-msg gehen, die ich für meine Bedürfnisse nicht genau genug fand. Das löst alle meine Probleme. Hoffe, das hilft jedem in der Zukunft.

0
ElectRocnic