In allen Git-Tutorials, die ich gelesen habe, heißt es, dass Sie Folgendes tun können:
git init
git add .
git commit
Wenn ich das mache, wird eine große Textdatei geöffnet. Keines der Tutorials scheint dies zu behandeln, daher weiß ich nicht, was ich mit der Datei tun oder was ich in sie einfügen soll, wenn überhaupt.
git
git-commit
zufällig
quelle
quelle
--global
, um die Standardeinstellung zu ändern?--global
sie für den aktuellen Benutzer und--system
für alle auf diesem Computer geändert wird.Wie von Ben Collins erwähnt
-m "..."
, ist diese geöffnete "große Textdatei" ohne das Argument, das Commit inline einzugeben (was im Allgemeinen eine schlechte Idee ist, da es Sie dazu ermutigt, sich kurz zu fassen), ein Fenster, in das die Commit-Nachricht eingegeben werden kann .Normalerweise wird empfohlen, eine Zusammenfassung in die erste Zeile zu schreiben, eine Zeile zu überspringen und dann detailliertere Notizen darunter zu schreiben. Dies hilft Programmen, die beispielsweise die Festschreibungsnachrichten per E-Mail mit einer entsprechenden Betreffzeile und der vollständigen Liste der am Text vorgenommenen Änderungen ausführen.
Anstatt die
EDITOR
Shell-Variable zu ändern, können Sie auch den verwendeten Editor ändern, indem Sie die zusätzlichen Zeilen in Ihre~/.gitconfig
Datei einfügen:Diese zweite Zeile hat eigentlich nichts mit Ihrem Problem zu tun, aber ich finde sie wirklich nützlich, damit ich meine
~/.gitignore
Datei mit all den Dateitypen füllen kann, von denen ich weiß, dass ich sie niemals in ein Repository übertragen möchte.quelle
Die Textdatei, die geöffnet wird, ist eine Zusammenfassung des aktuellen Festschreibungsvorgangs. Das Git-Commit fügt Sie in diese Datei ein, sodass Sie oben in der Datei eine Commit-Nachricht hinzufügen können. Sobald Sie Ihre Nachricht hinzugefügt haben, speichern Sie diese Datei und beenden Sie sie.
Es gibt auch einen "-m msg" -Schalter für diesen Befehl, mit dem Sie die Festschreibungsnachricht in der Befehlszeile hinzufügen können.
quelle
Wenn Sie unter Mac OS X arbeiten und BBEdit verwenden, können Sie dies als Editor Ihrer Wahl für Festschreibungsnachrichten einrichten:
Wenn Sie mit dem Bearbeiten fertig sind, speichern und schließen Sie die Datei. Git verwendet sie für die Kommentare.
quelle
Angenommen, Ihr Editor ist standardmäßig vi / vim, können Sie den Commit-Nachrichteneditor beenden, indem Sie Folgendes eingeben:
Dadurch wird die Commit-Nachrichtendatei gespeichert und beendet. Dann kehren Sie zum normalen git-Befehlsabschnitt zurück.
Weitere vi-Befehle:
http://www.lagmonster.org/docs/vi.html
quelle
esc
Fall müssen Sie drücken , um in den Befehlsmodus zu gelangen, bevor Sie:x
zum Speichern und Beenden eingeben .Wie alle gesagt haben, fügen Sie hier nur Ihren Commit-Kommentar hinzu. Bei einigen ist dies jedoch möglicherweise immer noch verwirrend, insbesondere wenn Sie Ihre Editoreinstellungen nicht konfiguriert haben und nicht wissen, was VI ist. Dann könnten Sie einen Schock erleben , weil du denkst, du bist noch im GIT-Bash
In diesem Fall befinden Sie sich tatsächlich in einem Texteditor mit einigen interessanten Möglichkeiten, mit Dingen umzugehen, und dieser Befehlssatz kann Ihnen dabei helfen, Ihr erstes Commit zu überwinden und dann einen Editor zu konfigurieren, mit dem Sie vertraut sind oder den Sie verwenden eine Gelegenheit zu lernen, wie man es benutzt.
quelle
Mit der
-m
Option zum Festschreiben können Sie eine Festschreibungsnachricht in die Befehlszeile eingeben:quelle
Wenn Sie ein neues Commit erstellen, startet git einen Texteditor und schreibt einige Dinge hinein.
Mit diesem Texteditor möchten Sie die Festschreibungsnachricht schreiben, die mit Ihrem frisch erstellten Festschreiben verknüpft wird.
Speichern und beenden Sie anschließend den Texteditor. Git verwendet das, was Sie geschrieben haben, als Commit-Nachricht.
Die Festschreibungsnachricht hat eine bestimmte Struktur, die wie folgt beschrieben wird:
Die erste Zeile der Festschreibungsnachricht wird als Nachrichtenkopf (oder Titel) verwendet. Die bevorzugte Länge des Commit-Headers beträgt weniger als 40 Zeichen, da dies die Anzahl der Zeichen ist, die Github auf der Registerkarte Commits eines bestimmten Repositorys anzeigt, bevor es abgeschnitten wird, was manche Leute als irritierend empfinden.
Beim Erstellen der Kopfzeile ist die Verwendung eines großgeschriebenen Präsensverbs für das erste Wort gängige Praxis, jedoch überhaupt nicht erforderlich.
Eine neue Zeile beschreibt den Header und den Text der Nachricht.
Der Körper kann bestehen, was immer Sie wollen. Ein Überblick über die durch Ihr Commit eingeführten Änderungen ist angemessen. Einige Anwendungen von Drittanbietern verwenden Informationen, einschließlich der Festschreibungsnachrichten, um verschiedene Arten von Hooks auszulösen (ich denke, Gerrit und Pivotal Tracker, um nur zwei zu nennen).
Hier ist ein kurzes und süßes Beispiel. Ein führender
#
Punkt kennzeichnet einen Kommentar.Hier meint ein Herr Torvalds, was ein gutes Engagement ausmacht.
Und hier tut Tpope es ebenfalls.
Wie in mehreren anderen Antworten angegeben, ist das Ändern des Standardeditors ein Einzeiler in der Befehlszeile.
Für meine Präferenz:
quelle
Versuchen Sie Escape und dann ZZ, nachdem Sie Ihre Nachricht eingegeben haben. Wie andere gesagt haben, wird beim Ausführen dieses Commit-Befehls tatsächlich ein Texteditor ausgeführt, in den die Nachricht eingegeben werden kann. In meinem Fall (OS X) war es VI, was ich nach einigem Stöbern herausgefunden habe. In diesem Fall drücken Sie Escape, um in den "Befehls" -Modus (im Gegensatz zum INSERT-Modus) zu wechseln und ZZ einzugeben. Ich bin mir sicher, dass es andere Möglichkeiten gibt, die Aufgabe zu erfüllen, aber das hat es für mich getan. Da ich noch nie VI oder Emacs verwendet hatte, war es für mich nicht ohne weiteres ersichtlich und wurde in keinem der von mir verwendeten Anfängerhandbücher erwähnt. Hoffentlich hilft das.
quelle
Der
git commit
Befehl öffnet den in derEDITOR
Umgebungsvariablen angegebenen Editor , sodass Sie einen Festschreibungskommentar eingeben können. Auf einem Linux- oder BSD-System sollte dies standardmäßig vi sein, obwohl jeder Editor funktionieren sollte.Geben Sie einfach Ihre Kommentare ein und speichern Sie die Datei.
quelle
Ich war verwirrt, weil ich immer wieder versuchte, einen Dateinamen nach dem: w in VIM einzugeben. Das löst das Commit nicht aus. Stattdessen erhielt ich immer wieder die Meldung "Commit wegen leerer Commit-Nachricht abbrechen". Setzen Sie keinen Dateinamen nach: w. : w speichert die Datei standardmäßig in .git / COMMIT_EDITMSG. Dann: q zum Beenden, um das Festschreiben abzuschließen. Sie können die Ergebnisse mit Git-Protokoll sehen.
quelle
Nachdem ich meinen Editor auf Emacs umgestellt habe, funktioniert alles einwandfrei.
Aber bevor ich dies einstellte, öffnete "git commit -a" gedit, endete aber sofort mit einem "Abbruch des Commits aufgrund einer leeren Commit-Nachricht". Das Speichern der Datei aus gedit hatte keine Auswirkung. Das explizite Setzen des Editors mit "git config --global core.editor" gedit "" hatte das gleiche Ergebnis.
An Emacs ist nichts auszusetzen, aber aus Neugier, warum funktioniert das nicht mit Gedit, und gibt es eine Möglichkeit, es zum Laufen zu bringen?
Vielen Dank.
quelle
git config --global core.editor "gedit -s"
Für diejenigen unter Ihnen, die OS XI verwenden, hat dieser Befehl gut funktioniert:
git config --global core.editor "open -t -W"
Dadurch wird git gezwungen, den Standardtexteditor (in meinem Fall textedit) zu öffnen und dann darauf zu warten, dass Sie die Anwendung beenden. Beachten Sie, dass Sie textedit "Speichern" und dann "Beenden" müssen, bevor das Commit ausgeführt wird. Es gibt einige andere Befehle, mit denen Sie herumspielen können, wie auf dieser Seite beschrieben:
Apple Developer Library - Befehl öffnen
Sie können auch versuchen,
git config --global core.editor "open -e -W"
ob git immer textedit öffnen soll, unabhängig vom Standardeditor.quelle
Ja, stellen Sie sicher, dass Sie einen vernünftigen Editor haben. Ich bin mir nicht sicher, was Ihr Standardeditor sein wird, aber wenn es wie ich Nano ist (wird nach der Eingabe von Commit irgendwo in der Nähe der Spitze angezeigt), müssen Sie nur einen Kommentar eingeben und dann Strg-x drücken, um den Vorgang abzuschließen. Drücken Sie dann y und anschließend die Eingabetaste, um das Commit zu bestätigen.
Wenn Sie eine einfache Liste der Dateien anzeigen möchten, legen Sie diese fest, anstatt zuvor eine große Diff-Liste zu erstellen
quelle
Wenn Sie eine Revisionskontrolle durchführen, sollten Sie immer erklären, welche Änderungen Sie vorgenommen haben. Normalerweise haben Sie zum ersten Mal einen Kommentar wie "Initial Commit".
Auf lange Sicht möchten Sie jedoch für jedes Commit einen guten Kommentar abgeben. Sie werden etwas von der Form wollen:
quelle
Da ich auch neu im Terminal bin, hat "Escape and then ZZ" für mich funktioniert. Ich habe dieses Problem seit Monaten und konnte auch keinen Weg finden, es zu umgehen.
Vielen Dank an TheGeoff für Ihren einfachen Rat!
quelle
Folgendes ist wahrscheinlich der einfachste Weg, um alle Änderungen zu übernehmen:
Natürlich gibt es viel detailliertere Möglichkeiten zum Festschreiben, aber das sollte Ihnen den Einstieg erleichtern.
quelle