Bitte geben Sie eine Festschreibungsnachricht ein, um zu erklären, warum diese Zusammenführung erforderlich ist, insbesondere wenn ein aktualisierter Upstream in einem Themenzweig zusammengeführt wird

515

Ich benutze Git. Ich habe einen Pull von einem Remote-Repo ausgeführt und eine Fehlermeldung erhalten:

Bitte geben Sie eine Commit-Nachricht ein, um zu erklären, warum diese Zusammenführung erforderlich ist,
insbesondere wenn ein aktualisierter Upstream in einem Themenzweig zusammengeführt wird.

Ich versuche eine Nachricht einzugeben und drücke, Enteraber es passiert nichts.

Wie kann ich Git / Terminal mitteilen, dass ich mit dem Eingeben meiner Nachricht fertig bin?

Ich verwende Terminal unter OS X.

bernie2436
quelle
3
Es scheint, dass Ihr GIT so konfiguriert ist, dass eine vorkonfigurierte Vorlage geöffnet wird und diese Vorlage über den Standardeditor (vi / vim) geöffnet wird.
Shunya
Brechen Sie diese Zusammenführung ab und versuchen Sie, git pull --rebase zu verwenden.
Ankush Jain
3
Form me "Shift ZZ" löst das Problem
Papacico

Antworten:

1189

Es ist keine Git-Fehlermeldung, sondern der Editor, da Git Ihren Standardeditor verwendet.

Um dies zu lösen:

  1. Drücken Sie "i" (i zum Einfügen)
  2. Schreiben Sie Ihre Zusammenführungsnachricht
  3. drücke "esc" (Escape)
  4. schreibe ": wq" (schreibe & beende)
  5. Drücken Sie dann die Eingabetaste
Saad.elzwawy
quelle
7
Ok, aber dies setzt voraus, dass sein Editor vioder ist vim.
Gabriele Petronella
106
das ist hella kompliziert
Connor Leech
92
Herr, ich hasseVi
Sobiaholic
153
Wenn es jemandem hilft, erinnern Sie sich daran, dass "i" für "Einfügen" steht, "esc" das Beenden der Einfügung ist und ": wq" nur "schreiben" und "beenden" ist.
Josh Beam
83
Dies könnte genauso gut sein ↑↑ ↓↓ ← → ← → BA
Wesley Smith
39

Eigentlich ist es kein Fehler! Es bedeutet, dass Sie eine Nachricht eingeben sollten, um diese Zusammenführung zu markieren. Mein Betriebssystem ist Ubuntu 14.04. Wenn Sie dasselbe Betriebssystem verwenden, müssen Sie dies nur wie folgt tun:

  1. Geben Sie eine Nachricht ein

  2. CtrlCO

  3. Geben Sie den Dateinamen ein (z. B. "Merge_feature01") und drücken Sie Enter

  4. CtrlX beenden

Wenn Sie nun zu .git gehen und die Datei "Merge_feature01" finden, ist dies tatsächlich das Zusammenführungsprotokoll.

Xiaohu Wang
quelle
6
Ich frage mich, woher jemand das wissen würde. Es ist so seltsam, wie das funktioniert. Vielen Dank für die Beantwortung.
Adrian Carr
@ ScottyBlades warum um alles in der Welt sollte es? Die Frage ist mit osx gekennzeichnet. Diese Antwort betrifft, wie Ubuntu ein völlig anderes Setup für Git (mit nanooder pico) einrichtet, das für das OS X-Setup nicht gilt. Es ist in keiner Weise verallgemeinerbar und bietet auch keinen Einblick in die Funktionsweise, daher der Kommentar von @AdrianCarr. Es gibt jetzt weitaus bessere Antworten.
Oligofren
27

Stellen Sie den Editor auf etwas Schöneres ein, wie Sublime oder Atom

Hier wird nice im Sinne eines Editors verwendet, den Sie mögen oder benutzerfreundlicher finden .

Das zugrunde liegende Problem ist, dass Git standardmäßig einen Editor verwendet, der für die meisten Benutzer zu unintuitiv ist: Vim. Versteh mich nicht falsch, ich liebe Vim, und obwohl du etwas Zeit (wie einen Monat) einplanen könntest , um Vim zu lernen und zu verstehen, warum manche Leute Vim für den größten existierenden Editor halten, gibt es einen schnelleren Weg dieses Problem zu beheben :-)

Das Update besteht nicht darin, sich kryptische Befehle zu merken , wie in der akzeptierten Antwort, sondern Git so zu konfigurieren, dass ein Editor verwendet wird, den Sie mögen und verstehen! Es ist wirklich so einfach wie das Konfigurieren einer dieser Optionen

  1. die Git-Konfigurationseinstellung core.editor(pro Projekt oder global)
  2. die VISUALoder EDITORUmgebungsvariable (dies funktioniert auch für andere Programme)

Ich werde die erste Option für einige beliebte Editoren behandeln, aber GitHub hat auch für viele Editoren eine ausgezeichnete Anleitung dazu.

Atom benutzen

Geben Sie dies direkt aus den Dokumenten in ein Terminal ein: git config --global core.editor "atom --wait"

Git wartet normalerweise, bis der Editor-Befehl beendet ist, aber da Atom sofort zu einem Hintergrundprozess wechselt, funktioniert dies nicht, es sei denn, Sie geben ihm die --waitOption.

Sublime Text verwenden

Aus den gleichen Gründen wie im Fall Atom benötigen Sie ein spezielles Flag, um dem Prozess zu signalisieren, dass er nicht in den Hintergrund treten soll:

git config --global core.editor "subl -n -w"

Oligofren
quelle
Vim braucht keinen Monat. Es dauert zwei Tage und Sie vergessen nie, solange Sie einen handlichen Spickzettel aufbewahren, den Sie zunächst von Zeit zu Zeit benötigen.
user264431
22

Mach einfach,

CTRL + X

CTRL + C

Sie werden aufgefordert, die Datei zu speichern. Drücken Sie Y, dann sind Sie fertig.

Mandeep Singh
quelle
Dies ist der Fall, wenn Ihr Standardeditor "pico" oder "nano" ist. Die obigen Kommentare sollten verwendet werden, wenn Ihr Standardeditor vim ist.
JacKeown
7

Hier werden Sie nach einer Nachricht gefragt, die mit Ihrer Zusammenführung in Verbindung steht, um später darauf zurückgreifen zu können, warum Sie diese Zusammenführung durchgeführt haben.

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter
Vivek Singh
quelle
6

Stattdessen können Sie CtrlZdas Commit git und erneut versuchen, aber dieses Mal "-m" mit einer Nachricht in Anführungszeichen hinzufügen, dann wird es festgeschrieben, ohne dass Sie dazu aufgefordert werden.

hgrov52
quelle
3
lol das würde definitiv das Problem des OP lösen. git commit -m 'I did blah'
James M. Lay
Ich habe git Version 1.7.11.4 auf einem Linux-Terminal und trotz der Tatsache, dass ich git commit -m "message" oder git commit --message "message" gebe, erscheint der Editor von Zeit zu Zeit und fordert eine Nachricht an. Weiß jemand, warum der Schalter "-m" ignoriert wird?
pglpm
4

Da Ihr lokales Repository nur wenige Commits vor sich hat, versucht git, Ihre Fernbedienung mit Ihrem lokalen Repo zusammenzuführen. Dies kann über die Zusammenführung erfolgen. In Ihrem Fall suchen Sie jedoch möglicherweise nach einer Neueinstellung, dh fügen Sie Ihr Commit ganz oben hinzu. Sie können dies mit tun

git rebase oder git pull --rebase

Hier ist ein guter Artikel, der den Unterschied zwischen git pull& erklärt git pull --rebase.

https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/

Ankush Jain
quelle
0

So fügen Sie eine Nachricht in Android Studio Terminal mit Ihrer Zusammenführung. Dies ist für Mac-Benutzer.

  • Schritt eins - Drücken Sie "i"
  • Schritt zwei - Geben Sie Ihre Nachricht nach "#" ein.
  • Schritt drei - Drücken Sie "esc"
  • Schritt vier - schreiben Sie ganz unten ": wq"
  • Schritt fünf - Drücken Sie "Enter"

Sie sind alle mit Ihrer Zusammenführung fertig. Anschließend können Sie weiter daran arbeiten, entweder nachher zu Ihrem lokalen Standort zu ziehen oder einen neuen Zweig zu erstellen.

NelsonRoberts
quelle
0

Es ist keine Git-Fehlermeldung, sondern der Editor git verwendet Ihren Standardeditor.

Um dies zu lösen:

  1. Drücken Sie "i"
  2. Schreiben Sie Ihre Zusammenführungsnachricht
  3. Drücken Sie "esc"
  4. schreibe ": wq"
  5. und drücken Sie die Eingabetaste

Erläuterung

Die Art und Weise, wie Sie sich daran erinnern, ist, dass "i" für "Einfügen" steht, "esc" das Beenden der Einfügung ist und ": wq" nur "Schreiben" und "Beenden" ist.

Vipin Kumar Shakya
quelle
0

Dies ist kein Fehler. Sie müssen eine Massege für diese Zusammenführung hinzufügen

um dies zu lösen:

  1. Drücke "i", um deine Massege einzufügen
  2. schreibe deine Massege
  3. Drücken Sie "esc"
  4. schreibe ": wq" (schreibe und beende, um die Massege zu speichern und zu beenden)
  5. Drücken Sie Enter"
ehsan asarzadeh
quelle
-1

Ich habe den Fehler gefunden, weil ich neu in Git war. Sie müssen überprüfen, ob Sie die richtige Syntax eingegeben haben

Ich habe einen Fehler gemacht und geschrieben git commit

und bekam den gleichen Fehler

verwenden git commit -m 'some comment'

und Sie werden die Seite mit nicht sehen

AyushPayasi
quelle