Wie kann ich Git dazu bringen, den Editor meiner Wahl für Commits zu verwenden?

2548

Ich würde es vorziehen, meine Commit-Nachrichten in Vim zu schreiben, aber es öffnet sie in Emacs.

Wie konfiguriere ich Git so, dass immer Vim verwendet wird? Beachten Sie, dass ich dies global tun möchte, nicht nur für ein einzelnes Projekt.

Brasskazoo
quelle
202
"Wie kann man git dazu bringen, zu vim zu gehen, um Kommentare von git-go zu schreiben?"
Michael Burr

Antworten:

3488

Wenn Sie den Editor nur für Git einstellen möchten , gehen Sie wie folgt vor (Sie benötigen nicht beide):

  • Stellen Sie core.editorin Ihrer Git-Konfiguration Folgendes ein:git config --global core.editor "vim"
  • Legen Sie die GIT_EDITORUmgebungsvariable fest:export GIT_EDITOR=vim

Wenn Sie den Editor für Git und andere Programme festlegen möchten , legen Sie die Standard- VISUALund EDITORUmgebungsvariablen * fest:

export VISUAL=vim
export EDITOR="$VISUAL"

* Das Einstellen von beiden ist nicht unbedingt erforderlich, aber einige Programme verwenden möglicherweise nicht das korrektere VISUAL. Siehe VISUALvs.EDITOR .


Für erhabenen Text : Fügen Sie dies dem hinzu .gitconfig. Das --waitist wichtig (es ermöglicht das Eingeben von Text in erhabenem Zustand und wartet auf das Speichern / Schließen-Ereignis.)

[core]
    editor = 'subl' --wait

'subl' kann durch den vollständigen Pfad der ausführbaren Datei ersetzt werden, ist jedoch normalerweise bei korrekter Installation verfügbar.

digitaler Träumer
quelle
96
Die EDITOR-Umgebungsvariable hat den Vorteil, dass eine Reihe anderer Programme dies ebenfalls berücksichtigen.
Boojum
16
Beachten Sie, dass git config --globaldies in Ihre persönliche Git-Konfigurationsdatei (pro Benutzer) geschrieben wird. Auf Unices ist es ~/.gitconfig. Dies würde es also für alle Ihre Repositorys konfigurieren.
Jakub Narębski
42
Sie können testen, ob Sie es erfolgreich geändert haben, indem Sie versuchen, die letzte Festschreibungsnachricht zu ändern. git commit --amend
Marco M.
11
Wenn Sie Option 1 in Windows ausführen und Leerzeichen im Pfad zum Editor haben (z. B. unter "Programme"), setzen Sie einfache Anführungszeichen in Ihre doppelten Anführungszeichen. zB "'C: / Programme (x86) /Whatever/App.exe'" - für manche offensichtlich, aber für mich nicht!
Pablissimo
5
@Abramodj -wist nicht notwendig; -w {scriptout}speichert alle Zeichen, die Sie beim Bearbeiten eingeben, um sie später wiederzugeben. Vielleicht verwechseln Sie es mit -f, was beim Aufrufen der GUI-Version von Vim erforderlich ist . Das heißt, wenn Sie verwenden mvim, sollte der von Ihnen angegebene Editor mvim -feher als sein mvim.
Rory O'Kane
618

Kopieren Einfügen:

git config --global core.editor "vim"

Falls Sie wissen möchten, was Sie tun. Von man git-commit:

UMWELT- UND KONFIGURATIONSVARIABLEN

Der zum Bearbeiten der Festschreibungsprotokollnachricht verwendete Editor wird aus der GIT_EDITORUmgebungsvariablen, der core.editorKonfigurationsvariablen, der VISUALUmgebungsvariablen oder der EDITORUmgebungsvariablen (in dieser Reihenfolge) ausgewählt.

Mark Rushakoff
quelle
4
Übrigens gilt das oben Gesagte für CVS und SVN, und ich denke, andere Versionskontrollen.
Armandino
6
@armandino: Ja, die anderen könnten VISUALoder verwenden EDITOR, aber sie verwenden sicherlich nicht GIT_EDITORoder core.editor.
Mark Rushakoff
8
Ja - svnbook.red-bean.com/de/1.1/ch07.html#svn-ch-7-sect-1.3.2 Wenn ich also theoretisch sowohl svn als auch git verwende, würde ich $ VISUAL oder $ EDITOR setzen Seien Sie die beste Lösung, um beide standardmäßig abzudecken!
Brasskazoo
12
Der Vollständigkeit halber bedeutet core.editor [core] editor = ... in der Datei
JRG
2
Beantwortete nicht die Frage "Wie konfiguriere ich Git ..."
Ant6n
193

Unter Ubuntu und auch unter Debian (danke @MichielB) ist das Ändern des Standardeditors auch durch Ausführen von:

sudo update-alternatives --config editor

Was Folgendes auffordert:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 
Koen.
quelle
8
Auf Debian funktioniert das auch, danke! Der Standardwert ist pico - argh.
MichielB
2
Natürlich funktioniert es unter Debian; Es ist eine Debian-Funktion, die Ubuntu wie die meisten Dinge (ooh, umstritten!) lediglich erbt. Das Debian- alternativesSystem ist eine viel einfachere Möglichkeit, die Standardeinstellungen für die unterstützten Programmtypen zu verwalten. Als Referenz: debian-administration.org/article/91/…
underscore_d
Es funktioniert, während GIT_EDITORund EDITOR nicht --ubuntu
Ninja
Keine Optionen für Emacs? Wenn ja, was für eine Schande!
Haziz
2
@haziz update-alternativeszeigt alle installierten Editoren an. Koen hat Emacs einfach nicht installiert.
Major
59

In Windows 7 gab es beim Hinzufügen des Editors "Sublime" immer noch einen Fehler:

Abbrechen des Commits aufgrund einer leeren Commit-Nachricht.

Sublime konnte den Fokus nicht halten.

Um dies zu beheben, öffnete ich die .gitconfig-Datei im Ordner c: / users / username / und fügte die folgende Zeile mit der Option --wait außerhalb der doppelten Anführungszeichen hinzu.

[core]
      editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait

Ich hoffe, es ist hilfreich für jemanden, der mit Sublime vor einem ähnlichen Problem steht.

Anmol Saraf
quelle
Nett! Vielen Dank, Anmol. Ich hatte dieses Problem, bei dem eine leere Nachricht gesendet wurde.
Ddavison
Warum sollten Sie sublime für Git-Commits verwenden?
Adam F
13
Jeder Editor für Git Commit wird meistens verwendet, um mehrere Kommentarzeilen hinzuzufügen, und Sublime ist für viele Entwickler aus verschiedenen Gründen eine Programmiererwahl. Menschen neigen im Allgemeinen dazu, einen Editor für die meisten ihrer Codierungs- und anderen Arbeiten zu verwenden. Erhaben ist nur eine persönliche Wahl, es kann jeder Redakteur sein.
Anmol Saraf
4
Ich habe gerade herausgefunden, dass die einfachen Anführungszeichen erforderlich sind. Es funktioniert nicht mit doppelten Anführungszeichen ".
dotnetCarpenter
1
Anstatt gitconfig manuell zu bearbeiten, können Sie diesen Befehl verwendengit config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
KayakinKoder
53

Setzen Sie in Windows 7 den Editor auf Notepad ++

  • Öffnen Sie einen beliebigen Texteditor.
  • Öffnen Sie diese Datei: C:\Users\YOUR_USERNAME\.gitconfig
  • Fügen Sie diesen Abschnitt unten hinzu:

[core]
    editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' 
  • Speichern und schließen Sie die Datei.
  • Wenn Sie sich mit git beschäftigen, schreiben Sie einfach git commitund drücken Sie Enter. Es öffnet sich Notepad ++.
  • Schreiben Sie Ihre Festschreibungsnachricht oben in die Datei und speichern und schließen Sie die Datei. Erledigt!
Ryan
quelle
endlich jemand, der weiß, wie man es einfach schreibt! Vielen Dank. Aber Sie sollten erwähnen, dass im Pfad zum Notizblock '/' oder doppelter Backslash '\\' verwendet werden muss, sonst wird sich git beschweren ...
icl7126
10
Möglicherweise müssen Sie -multiInstNotepad ++ und möglicherweise mindestens einen Parameter hinzufügen -notabbar. Tun Sie dies, wenn Git nicht zu wissen scheint, wann Sie die Datei bearbeitet haben und entweder für immer oder gar nicht warten.
ErikE
1
Genau das, was ich wollte. Vergleichen Sie die Verwendung von \ und /
Henry
4
Um die Konfiguration in der Kommandozeile festzulegen, benötige ich doppelte Anführungszeichen in einfachen Anführungszeichen wie>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
Josef
2
Um die Notepadd ++ - Parameter hinzuzufügen, musste ich Folgendes tun: editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar- Das heißt, Parameter außerhalb der abgrenzenden einfachen Anführungszeichen
Cropredy
30

So machen Sie Visual Studio Code (vscode) zu Ihrem Standard-Git-Editor

git config --global core.editor "code --wait"
Marcelo Mason
quelle
24

Und wenn Sie mit Designern über die Kommandozeile arbeiten, dann Pico, und keine Abkürzungen kennen;)

git config --global core.editor "pico"

Oder

export VISUAL=pico
export EDITOR=pico
Tristanbailey
quelle
18

Atom als dein Git-Editor

git config --global core.editor "atom --wait"

Atom muss so konfiguriert sein, dass es über die Befehlszeile ausgeführt wird, damit Folgendes funktioniert:

OS X : Shell-Befehle über Atom installieren: Menüleiste> Atom> Shell-Befehle installieren

Windows : Keine Aktion erforderlich - Atom ist standardmäßig so konfiguriert, dass es über die Befehlszeile ausgeführt wird

2Laden
quelle
17

Festlegen von Sublime Text 2 als Git-Commit-Editor unter Mac OS X 10

Führen Sie diesen Befehl aus:

$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"

Oder nur:

$ git config --global core.editor "subl -w"
Mohsen
quelle
Irgendwie liefert es den Text nicht an Git. Ich habe "Commit wegen leerer Commit-Nachricht abbrechen" erhalten. Error.
Mahendran
Ich habe den ersten Befehl verwendet, um SL einzurichten. cmd + S dann cmd + W, um den Editor zu schließen
Mahendran
2
Visual Studio Code unterstützt den -wParameter ebenfalls. Z.B. $ git config --global core.editor "code -w". Ordentliches Zeug
Automatico
Alternative Antwort hier: stackoverflow.com/a/48212377/4561887 , mit Linux-Beispiel.
Gabriel Staples
13

Windows: Festlegen des Notizblocks als Standard-Editor für Festschreibungsnachrichten

git config --global core.editor notepad.exe

Drücken Sie Ctrl+ S, um Ihre Commit-Nachricht zu speichern. Schließen Sie zum Verwerfen einfach das Notizblockfenster, ohne es zu speichern.

Wenn Sie die Verknüpfung zum Speichern drücken und dann abbrechen, gehen Sie zu Datei-> Speichern unter und ändern Sie im daraufhin angezeigten Dialogfeld "Dateityp" in "Alle Dateien (*. *)". Sie sehen eine Datei mit dem Namen "COMMIT_EDITMSG". Löschen Sie es und schließen Sie das Notizblockfenster.

Bearbeiten: Alternativ und einfacher können Sie den gesamten Inhalt aus dem geöffneten Notizblockfenster löschen und auf Speichern klicken. (danke mwfearnley für den Kommentar!)

Ich denke für kleine Zuschreibungen wie Commit-Nachrichten dient der Editor am besten, weil es einfach ist, mit Fenstern da ist, sich in kürzester Zeit öffnet. Sogar Ihr Erhabener kann ein oder zwei Sekunden brauchen, um in Schwung zu kommen, wenn Sie eine Menge Plugins und ähnliches haben.

Sнаđошƒаӽ
quelle
2
Anstatt zu Datei-> Speichern unter zu wechseln, können Sie die Datei leeren (oder nicht leere Zeilen auskommentieren), und Git wird aufgrund einer leeren Festschreibungsnachricht abgebrochen.
mwfearnley
@Stepan Ändern Sie Commit? Wenn ja, dann \r\nschätze ich, dass es mit (Newline in Windows) und \n(Newline unter Linux, auch Standard für Git) zu tun hat .
Sнаđошƒаӽ
Besser, Sie fügen die Zeile wie folgt hinzu, core.editor = 'notepad' .git/COMMIT_EDITMSG --waitdamit sie die Standardbearbeitungsnachricht öffnet und speichert und Sie nicht "Speichern unter" benötigen
Radon8472
12

Dies bietet eine Antwort für Personen, die zu dieser Frage gelangen und möglicherweise einen anderen Editor als vim verknüpfen möchten.

Die verknüpfte Ressource von Github wird wahrscheinlich auf dem neuesten Stand gehalten, wenn die Editoren aktualisiert werden, auch wenn die Antworten auf SO (einschließlich dieser) nicht zutreffen.

Verknüpfen von Texteditoren mit git

Githubs Beitrag zeigt genau, was Sie für verschiedene Editoren in Ihre Befehlszeile eingeben müssen, einschließlich der Optionen / Flags, die für jeden Editor spezifisch sind, damit es am besten mit git funktioniert.

Editor ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Erhabener Text:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"

Atom:
git config --global core.editor "atom --wait"

Die obigen Befehle setzen voraus, dass Ihr Editor im Standardverzeichnis für einen Windows-Computer installiert wurde.

Die Befehle fügen im Wesentlichen den Text zwischen doppelten Anführungszeichen .gitconfigin Ihrem Home-Verzeichnis hinzu.
Auf einem Windows-Computer befindet sich wahrscheinlich zu Hause C:\Users\your-user-name, wo Ihr Benutzername Ihr Anmeldename ist.
Über die Befehlszeile können Sie dieses Verzeichnis durch Eingabe erreichen cd ~.

Ein Befehl oben würde beispielsweise die folgende Zeile unter dem folgenden [core]Abschnitt hinzufügen :
[core] editor = 'C:/Program Files/sublime text 3/subl.exe' -w

Wenn Sie einen anderen Editor haben, ersetzen Sie ihn einfach durch den Pfad zu Ihrem Editor. Verwenden Sie dazu eine der oben genannten Methoden. (und hoffe, dass für eine optimale Nutzung keine Flags benötigt werden.)

SherylHohman
quelle
Vielen Dank, ich hatte Probleme damit, dass nur "vim" die "interne" vim-Instanz für Git gestartet hat (ohne meine Einstellungen usw.). Das Bereitstellen des vollständigen Pfads zu meiner Instanz hat das Problem behoben!
Benichka
10

Für Emacs-Benutzer

.emacs::

(server-start)

shellrc::

export EDITOR=emacsclient
Bendlas
quelle
6
Hier ist, wie man Emacs im Terminal-Modus setzt, wenn man sich verpflichtetgit config --global core.editor "emacs -nw"
Kukinsula
Ich benutze git config --global core.editor "emacs -nw -q", wo die -qInitialisierungsdateien übersprungen.
Miguelmorin
8

Beste Einstellungen für Sublime Text 3 als Git-Editor (Windows- und Linux-Anweisungen):

Um diese Anweisungen in Windows zu befolgen, stellen Sie sicher, dass Sie Git für Windows installiert haben . Unter Windows verwende ich gerne Git Bash, damit es sich eher wie Linux anfühlt.

Zunächst möchten wir ein spezielles Sublime Text-Projekt erstellen, damit wir spezielle Projekteinstellungen festlegen können, die festgelegt werden sollen, wenn Git den Editor aufruft, um die Bearbeitung in Git zu vereinfachen. Zum Beispiel setze ich mein Lineal normalerweise in den meisten Projekten auf 120 Zeichen, aber für Git-Commit-Nachrichten möchte ich, dass es 72 Zeichen enthält, damit es gut in ein Terminal passt, wenn Sie git logoder anrufen git lg.


1. Erstellen Sie ein Sublime Text-Projekt mit Einstellungen, die wir zum Bearbeiten von Git-Commit-Nachrichten verwenden möchten

Öffnen Sie Sublime Text und gehen Sie zum Menü "Datei""Neues Fenster" , um ein neues anonymes Projekt zu erstellen. Gehen Sie zum Menü "Projekt""Projekt speichern unter ..." und wählen Sie einen Ort zum Speichern. Unter Linux habe ich es in meinem Linux-Ausgangsverzeichnis mit dem Dateinamen gespeichert .gitconfig.sublime-project. Sein Weg ist daher : ~/.gitconfig.sublime-project. Speichern Sie es unter Windows auch in Ihrem Home-Verzeichnis, zum Beispiel: C:\Users\MY_USER_NAME\.gitconfig.sublime-project Gehen Sie nun zum Menü "Projekt""Projekt bearbeiten " , um die Projekteinstellungen zu bearbeiten. Fügen Sie Folgendes ein und speichern Sie die Einstellungen. Nehmen Sie bei Bedarf weitere Änderungen an Ihren Projekteinstellungen vor.

{
    // For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html

    "folders":
    [

    ],

    "settings":
    {

        // Disables horizontal scrolling if enabled.
        // May be set to true, false, or "auto", where it will be disabled for
        // source code, and otherwise enabled.
        "word_wrap": false,

        // Set to a value other than 0 to force wrapping at that column rather than the
        // window width
        "wrap_width": 0,

        // Columns in which to display vertical rulers
        "rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles

        // The number of spaces a tab is considered equal to
        "tab_size": 4,

        // Set to true to insert spaces when tab is pressed
        "translate_tabs_to_spaces": true,
    },

    "build_systems":
    [

    ]

}

2. Stellen Sie den von Git zu verwendenden Editor ein

Jetzt müssen wir den Editor so einstellen, dass er von Git verwendet wird, indem wir die .gitconfigDatei bearbeiten .

Für Linux:

Ihre Benutzerkopie davon befindet sich in ~/.gitconfig. Öffnen Sie diese Datei und fügen Sie die folgenden Zeilen hinzu. Stellen Sie sicher, dass Sie den richtigen Pfadnamen für das Git-Projekt verwenden, das Sie gerade erstellt haben! Ich benutze ~/.gitconfig.sublime-project.

[core]
    editor = subl --project ~/.gitconfig.sublime-project --wait

Dies --waitist wichtig, da Git gezwungen ist, zu warten, bis Sie die Datei schließen, bevor sie fortgesetzt wird. Die --projectZeile ist wichtig, um Sublime Text mitzuteilen, welches Projekt geöffnet werden soll, wenn Git Sublime Text öffnet.

Gemäß der obigen Antwort von @ digitaldreamer ( https://stackoverflow.com/a/2596835/4561887 ) kann " subldurch den vollständigen Pfad der ausführbaren Datei ersetzt werden, aber [der Alias subl] ist normalerweise verfügbar, wenn [Sublime] korrekt installiert ist."

Für Windows:

Lesen Sie unter Windows zunächst die Linux-Anweisungen, um Hintergrundinformationen zu erhalten. Jetzt werden wir etwas fast identisches tun.

(OPTIONAL: Erstellen Sie einen sublAlias ​​zur Verwendung in Git Bash):

Öffnen Sie einen Texteditor (z. B. Notepad, Notepad ++, Sublime Text, Geany usw.) und erstellen Sie eine Datei mit dem Namen ".bash_profile" in Ihrem Home-Verzeichnis. Sein Weg wird daher sein : C:\Users\MY_USER_NAME\.bash_profile. Speichern Sie Folgendes darin:

alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"

Dadurch wird ein Git Bash-Alias ​​mit dem Namen erstellt subl, den wir jetzt in Git Bash für Windows verwenden können, um Sublime Text einfach zu öffnen. Dieser Schritt ist nicht erforderlich, aber für die allgemeine Verwendung von Git Bash nützlich. Jetzt können Sie subl .beispielsweise Git Bash aufrufen , um ein neues Sublime Text-Projekt in Ihrem aktuellen Verzeichnis zu öffnen.

(VERPFLICHTEND):

Bearbeiten Sie die .gitconfigDatei in Ihrem Home-Verzeichnis : C:\Users\MY_USER_NAME\.gitconfig, indem Sie Folgendes hinzufügen. Beachten Sie die subtilen Änderungen gegenüber den obigen Linux-Anweisungen:

[core]
  editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
  • Beachten Sie, dass Sie den vollständigen Pfad zur ausführbaren Datei von Sublime Text angeben müssen. Beachten Sie die Richtung der Schrägstriche! Verwenden Sie /NICHT \, um Ordner im Pfadnamen zu trennen! (Danke VonC, dass du mir geholfen hast, das zu sehen ).
  • Unser sublAlias, den wir oben für Git Bash erstellt haben, funktioniert hier nicht. Sie können ihn also nicht wie im Linux-Beispiel verwenden. Stattdessen müssen Sie den gesamten Pfad wie oben gezeigt angeben.
  • Das ~Symbol funktioniert hier jedoch weiterhin, um zu Ihrem Windows-Ausgangsverzeichnis zu gelangen.

2.5. (Optional) Installieren Sie das "Git" -Paket in Sublime Text 3.

Auf diese Weise erhalten Sie Syntaxhervorhebungen für git commitNachrichten sowie Zugriff auf andere Git-Befehle wie git blame(die ich häufig in Sublime Text verwende) oder git commit(die ich in Sublime Text nicht verwende, da ich die Befehlszeile für allgemeines Git bevorzugen würde fließen, wie ich in meinen Kommentaren unter dieser Antwort erwähnt habe).

So installieren Sie ein Paket: Stellen Sie zunächst sicher, dass "Package Control" installiert ist. Drücken Sie anschließend Ctrl+ Shift+ P(wie Extras → Befehlspalette) und geben Sie "Paketsteuerung: Paket installieren" ganz oder teilweise ein Enter. Drücken Sie dann . Suchen Sie im daraufhin angezeigten Suchfeld nach dem Paket "Git" und Enterklicken Sie darauf oder klicken Sie darauf, um es automatisch zu installieren.

Nach der Installation werden durch Ctrl+ Shift+ Pund die Suche nach "git" Git-Befehle angezeigt, die Sie jetzt intern in Sublime Text verwenden können, z git blame.


3. Verwenden Sie es

Wenn Sie git commitzum Beispiel wie gewohnt über die Befehlszeile aufrufen , wird Sublime Text .gitconfig.sublime-projectmit den Einstellungen dieses Projekts in das oben erstellte geöffnet ! Wenn Sie einen Absatz eingeben, werden Sie feststellen, dass er über das von uns festgelegte Lineal hinausgeht, da der weiche Zeilenumbruch deaktiviert ist. Um einen Hard Wrap über automatisch eingefügte Hard Returns am Ende jeder Zeile zu erzwingen, setzen Sie den Cursor auf die lange Zeile, die automatisch umbrochen werden soll, und drücken Sie Alt+ Q. Es wird jetzt mit 72 Zeichen fest umbrochen / gefaltet, was wir im obigen Parameter "Lineale" der Projekteinstellungen festgelegt haben.

Speichern Sie nun Ihre Commit-Nachricht mit Ctrl+ Sund beenden Sie (um Ihre zu vervollständigen git commit) mit Ctrl+ Shift+ W.

Erledigt!

Verbunden:

  1. Git Mergetool mit Meld unter Windows
  2. https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles
Gabriel Staples
quelle
1
Das sieht ziemlich detailliert aus. +1
VonC
In Sublime Text 3 gibt es jetzt einen Git CommitSyntaxtyp. Sie können den benutzerdefinierten Schritt "Sublime-Text-Projekt" jetzt überspringen.
yegeniy
Ich bin anderer Meinung: Das hebt nur die Syntax hervor. Mein benutzerdefiniertes Projekt berührt nicht die Syntax-Higlighting-Funktion: Es legt Lineale fest und gibt einen Kontext an, in dem sich Ihre Git-Commits öffnen können, damit sie sich nicht in dem Projekt öffnen, das Sie zuletzt geöffnet haben oder hatten. Die beiden sind nicht verwandt; mach sie beide.
Gabriel Staples
Ich habe gerade Schritt 2.5 hinzugefügt, ABER (Bit "aber" hier): Ich verwende nicht immer Sublime Text 3 als Editor (manchmal verwende ich Eclipse, da es eine weitaus bessere Symbolverfolgung und -indizierung als Sublime bietet, obwohl es ansonsten ein beschissener Editor ist im Vergleich zu Sublime), und ich bevorzuge es wirklich, Git über die Befehlszeile zu verwenden, daher empfehle ich definitiv nicht, Schritt 1 zu überspringen, selbst wenn Sie das "Git" -Paket in Sublime installieren, wie ich es gerade in Schritt 2.5 beschrieben habe. Ja, Sie können Git Commits direkt von Sublime aus ausführen, aber ich würde die Befehlszeile bevorzugen.
Gabriel Staples
TIPP: Wenn Sie sublimemit gitund auch verwenden trim_trailing_white_space_on_save, möchten Sie einen Alias ​​für das Hinzufügen von Patches hinzufügen, da das Entfernen von nachgestellten Leerzeichen Patch-Änderungen unterbricht, bei denen dies sehr sinnvoll ist. Dies kann mit so etwas erreicht werden:git config --global alias.patch "-c core.editor=vim add --patch"
Timo
3

Mvim als dein Git-Editor

Wie bei allen anderen GUI-Anwendungen müssen Sie mvim mit dem Warteflag starten.

git config --global core.editor "mvim --remote-wait"
Matteo Rolla
quelle
--remote-wait-silentum hässliche Fehlermeldungen zu vermeiden :)
Shinigami
2

Für Windows-Benutzer, die neovim mit dem Windows-Subsystem für Linux verwenden möchten :

git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"

Dies ist keine narrensichere Lösung, da sie beispielsweise keine interaktive Neugründung ermöglicht. Verbesserungen sehr willkommen!

brcolow
quelle
1

Versuche es einfach EDITOR=vim git commit.

Oder Sie können Ihren EDITOR so einstellen, dass er export EDITOR=vimin Ihrem Bashrc vorbeischaut.

Xiao Hanyu
quelle
1

Für Benutzer von TextWrangler aus dem Mac App Store:

git config --global core.editor "open -n -W -a TextWrangler"

Stellen Sie außerdem sicher, dass die Einstellung "TextWrangler> Einstellungen> Anwendung> Wenn TextWrangler aktiv wird:" auf "Nichts tun" gesetzt ist.

Dies funktioniert für mich unter OS X 10.11.4 mit TextWrangler 5.0.2 aus dem Mac App Store.

Erläuterung:

Das -n bedeutet in einer neuen Instanz öffnen.

Das -W bedeutet, zu warten, bis die Anwendung beendet wird, bevor der Inhalt der bearbeiteten Datei als Festschreibungsnachricht verwendet wird.

Der -a TextWrangler bedeutet, dass Sie die TextWrangler-Anwendung verwenden, um die Datei zu öffnen.

man openWeitere Informationen finden Sie in Ihrer Mac Terminal-App.

DLRdave
quelle
Wenn TextWrangler bereits geöffnet ist, öffnet Ihre Lösung eine andere Instanz mit demselben Dateisatz wie die erste. Das scheint gefährlich.
Klaas
Ich habe die TextWrangler-Befehlszeilentools ( barebones.com/support/textwrangler/cmd-line-tools.html ) installiert und dann verwendet git config --global core.editor "edit -w". Dadurch wird die Festschreibungsnachricht in der aktuellen Instanz geöffnet. Sobald Sie nur dieses Festschreibungsnachrichtendokument schließen, wird die Festschreibung fortgesetzt.
Klaas
1

Verwenden Sie für Mac OS X TextEdit oder den natürlichen Umgebungseditor für Text:

git config --global core.editor "open -W -n"
Reimond Hill
quelle
1

Nur weil ich hierher gekommen bin, um nach einer einmaligen Lösung zu suchen (in meinem Fall verwende ich normalerweise, vimaber dieses Mal wollte ich VS-Code verwenden), für einen einzelnen Befehl, und andere möchten vielleicht auch wissen:

GIT_EDITOR='code -w' git rebase -i 

Hier ist meine git/ hubVersion nur für den Kontext:

git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Ben Saufley
quelle
1

Führen Sie den folgenden Befehl aus, um vim zum Standardeditor für git unter Ubuntu 20:04 zu machen :

git config --global core.editor vim
Hamfri
quelle
0

Für IntelliJ-Benutzer

Als ich versuchte, Rebase zu aktivieren, wurde der folgende Fehler angezeigt: 'Hinweis: Warten auf das Schließen der Datei durch Ihren Editor ... Code -n -w: Code: Befehl nicht gefunden Fehler: Es gab ein Problem mit dem Code des Editors -n -w '.'

Der gleiche Fehler trat auf, als ich versuchte, IntelliJ mit Git zu verknüpfen: Geben Sie hier die Bildbeschreibung ein

Das Problem war , dass ich nicht der Befehl habe Code in meiner Umgebung PATH - Variablen hinzugefügt. Und ich wollte Visual Studio Code nicht von meinem Terminal aus verwenden. Deshalb wurde "Befehl nicht gefunden" angezeigt. Ich habe dies durch Löschen gelöst

editor = code -n -w

aus dem Kernabschnitt in meiner .gitconfig-Datei. Git hat wieder richtig funktioniert.

Petra
quelle
-1

Für Textmate-Benutzer

Dadurch wird der Textmate-Editor geöffnet, wenn Sie Ihre Commits bearbeiten möchten. Erfordert die Installation von textmate-Befehlszeilentools.

git config --global core.editor "mate -w"

Matej
quelle
@givanse was meinst du?
Matej
2
Ich denke, er meint, es ist trivial in Analogie zur vim-Antwort?
Rup
hmm nein ist es nicht, aber wenn du etwas anderes als vim verwendest (wie textmate).
Matej
textmate hat auch eine "Warte" -Option, also für mich ist es diese: git config --global core.editor "/usr/local/bin/mate -w"
Trungly
-1

Für Windows-Benutzer, die den Kinesics-Texteditor verwenden möchten

Erstellen Sie eine Datei mit dem Namen 'k.sh', fügen Sie den folgenden Text hinzu und platzieren Sie ihn in Ihrem Home-Verzeichnis (~):

winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1

Geben Sie an der Git-Eingabeaufforderung Folgendes ein:

git config --global core.editor ~/k.sh
Mike Cheel
quelle