Git standardmäßige Zusammenführungs-Commit-Nachricht, die keine Konflikte enthält

8

Nachdem ich eine Zusammenführung vom origin/base Zweig in meinen feature Zweig gemacht hatte, musste ich einen Konflikt in der Datei Parameter.java lösen. Ich habe mein Git Merge Tool gestartet und es gelöst. Sobald es gelöst wurde, führte ich eine git commit aus und das öffnete Vim mit der Standard-Merge-Commit-Nachricht.

Tatsache ist, dass diese Standard-Commit-Nachricht die Liste der Konflikte enthält, aber beginnend mit # , deshalb werden sie in der Commit-Nachricht ignoriert.

%Vor%

Gibt es eine Config, die hinzugefügt werden muss, um diese Konfliktlinien automatisch in die Commit-Nachricht einzufügen? Entfernen Sie daher # für die in Konflikt stehenden Dateien im Conflicts -Teil?

    
jeerbl 20.01.2016, 12:07
quelle

3 Antworten

8

Sie können dazu den prepare-commit-msg Hook verwenden.

Kopieren Sie .git/hooks/prepare-commit-msg.sample in .git/hooks/prepare-commit-msg

Das Beispiel darin fügt # dem Konfliktteil tatsächlich # hinzu:

%Vor%

Dieser Hook ist sinnvoll, weil frühere Versionen dies standardmäßig getan haben (wie in Linux git version 1.7.10.4 ).

Nun möchten Sie genau das Gegenteil tun: # im Conflicts-Teil entfernen. In der Tat, der git version 2.6.2.windows.1 gibt standardmäßig den Conflicts-Teil aus, so dass Sie einfach den Befehl in prepare-commit-msg mit:

aktualisieren können %Vor%     
Igal S. 25.01.2016, 15:27
quelle
2

Ich verwende das, was sed Bereiche nach Mustern verwendet (und basiert auf jthills Antwort )

In menschlicher Sprache lesen: Entfernen Sie im Zeilenbereich zwischen # Conflicts: und # oder (blank line) die vorherige #(space) oder # ( # \? ).

%Vor%

prepare-commit-msg hook:

%Vor%

was zu

führt %Vor%     
hIpPy 03.05.2017 02:53
quelle
-1

Sie müssen es nicht selbst zur Commit-Nachricht hinzufügen. Sobald Sie ein Merge-Commit durchgeführt haben, sagt git Ihnen, wo es Konflikte gab. Führen Sie einfach einen git show --name-only [commit sha] bei einem Commit aus, bei dem es sich um eine Zusammenführung mit Konflikten handelt, und Sie sehen sie als Teil der Nachricht.

    
mohammedkhan 25.01.2016 15:33
quelle

Tags und Links