2014-07-07 12 views
11

Jedes Mal, wenn ich einen Befehl git merge ausführen, öffnet es den Texteditor und fordert mich auf, eine zusätzliche Nachricht hinzuzufügen.stop git merge von öffnenden Texteditor

Wie kann ich git davon abhalten, den Editor zu öffnen & einfach meine Zweige zusammenführen? Denn wenn der Editor geöffnet wird, wird die Zusammenführung nicht abgeschlossen, auch wenn ich eine zusätzliche Nachricht hinzufüge & die Datei speichern, hängt das Terminal nur auf meinem git merge-Befehl.

Merge branch 'my-feature-branch' into main-development 

# Please enter a commit message to explain why this merge is necessary, 
# especially if it merges an updated upstream into a topic branch. 
# 
# Lines starting with '#' will be ignored, and an empty message aborts 
# the commit. 

aktualisieren

Zeeker Antwort richtig war, aber ich war auch ein Problem mit erhabenem Text 2 unter Linux mit. Obwohl ich & gespeichert habe, schloss der Editor das Terminal, ich glaube es war, weil mein letzter Projektordner im Editor sich öffnete, als mit der Git-Merge-Datei. Ich entfernte das Projekt von erhaben, öffnete ein anderes erhabenes Fenster, schloss das ursprüngliche erhabene Fenster und schloss dann das neue erhabene Fenster. Danach, sobald ich den giy merge Befehl & New sublime Fenster ohne das Projekt geöffnet & ausgeführt habe, sobald ich den Git Merge-Befehl ausgeführt, geschlossen.

+4

möglich Duplikat von [Git merge verwendet keine Standard-Merge-Nachricht, öffnet Editor mit Standardmeldung] (http://StackOverflow.com/questions/12752288/Git-merge-doesnt-use-default-merge- message-opens-editor-with-default-message) – dtech

+1

"wenn es den Editor öffnet, wird die Zusammenführung nicht abgeschlossen, auch wenn ich eine zusätzliche Nachricht hinzufüge und die Datei speichere, hängt das Terminal einfach an meinem git merge-Befehl." Dies ist wahrscheinlich ein größeres Problem. Wenn Sie eine Nicht-Zusammenführung durchführen, erhalten Sie dasselbe Verhalten? – Chris

+0

@dtech es ist ähnlich, aber nicht das gleiche, das gleiche aber verschieden :) – Holly

Antwort

17

Verwenden Sie die Option , Sie können darüber in der documentation lesen.

Beachten Sie, dass die Verwendung der Standardnachricht diskuriert wird, da sie keine sinnvollen Informationen über die mit dieser Zusammenführung eingeführten Änderungen liefert.


Auf einer Nebenbemerkung: Um weiter zusammenführen müssen Sie wahrscheinlich den Editor schließen.


Wenn Sie eine git Version haben vor 1.7.8 es noch einen Weg, um zu erreichen, was Sie wollen, indem Sie den env Befehl.

env GIT_EDITOR=: git merge <ref-you-want-to-merge> 

Zur einfacheren Verwendung könnten Sie einen Alias ​​erstellen.

git config --global alias.merge-no-edit '!env GIT_EDITOR=: git merge' 

Welches kann dann mit git merge-no-edit <ref-you-want-to-merge> verwendet werden.

+0

Wissen Sie, welche Version von git das hinzugefügt wurde - wir haben CentOS 6 Server mit git 1.7.1 und sie unterstützen nicht die '--no- Bearbeitungsoption. –

+1

@HamishDowner während es scheint, dass es keine bestimmten Release Notes gibt, die die '--no-edit' Option einführen, [es wird in den '1.7.10' Release Notes erwähnt] (https://github.com/git/git /blob/8d530c4d64ffcc853889f7b385f554d53db375ed/Documentation/RelNotes/1.7.10.txt#L23-L26) sagen, dass es mit "Git Version 1.7.8 oder neuer" verwendet werden kann. Ich bearbeite meine Antwort, um eine Lösung für frühere Versionen hinzuzufügen. –

+0

Gerade festgestellt, dass die [1.7.8 Release Notes] (https://github.com/git/git/blob/8d530c4d64ffcc853889f7b385f554d53db375ed/Documentation/RelNotes/1.7.8.txt#L85) die Option "- edit" erwähnen, Dies impliziert die Option --no-edit. –

6

können Sie verwenden

git merge --no-edit 

Dies ist der Mann Seite:

--edit, -e, --no-edit einen Editor aufrufen, bevor eine erfolgreiche mechanische merge begehen bearbeiten zu fördern die automatisch generierte Zusammenführungsnachricht, sodass der Benutzer die Zusammenführung erklären und rechtfertigen kann. Die Option --no-edit kann verwendet werden, um die automatisch generierte Nachricht zu akzeptieren (dies wird im Allgemeinen nicht empfohlen). Die Option --edit (oder -e) ist immer noch nützlich, wenn Sie eine Entwurfsnachricht mit der Option -m aus dem Befehl Zeile geben und im Editor bearbeiten möchten.

Ältere Skripts hängen möglicherweise vom historischen Verhalten ab, das es dem Benutzer nicht erlaubt, die Meldung zum Zusammenführen des Protokolls zu bearbeiten. Sie sehen einen Editor geöffnet, wenn sie Git Merge ausführen.Um die Anpassung solcher Skripte an das aktualisierte Verhalten zu erleichtern, kann die Umgebungsvariable GIT_MERGE_AUTOEDIT zu Beginn auf no gesetzt werden.