Ich probiere Git unter Windows aus . Ich habe versucht, "git commit" zu versuchen und habe diesen Fehler erhalten:
Das Terminal ist dumm, aber weder VISUAL noch EDITOR definiert. Bitte geben Sie die Nachricht entweder mit der Option -m oder -F ein.
Also habe ich herausgefunden, dass ich eine Umgebungsvariable namens EDITOR haben muss. Kein Problem. Ich habe es so eingestellt, dass es auf Notepad zeigt. Das hat fast funktioniert. Die Standard-Commit-Nachricht wird im Editor geöffnet. Notepad unterstützt jedoch keine Bare-Line-Feeds. Ich bin rausgegangen und habe Notepad ++ bekommen , aber ich kann nicht herausfinden, wie ich Notepad ++ so einrichten kann %EDITOR%
, dass es wie erwartet mit Git funktioniert.
Ich bin nicht mit Notepad ++ verheiratet. An dieser Stelle macht es mir nichts aus, welchen Editor ich benutze. Ich möchte nur Commit-Nachrichten in einem Editor und nicht in der Befehlszeile (mit -m
) eingeben können.
Diejenigen von Ihnen, die Git unter Windows verwenden: Mit welchem Tool bearbeiten Sie Ihre Commit-Nachrichten und was mussten Sie tun, damit es funktioniert?
git config core.editor notepad
ist jetzt genug. Siehe meine aktualisierte Antwort unten .Antworten:
Update September 2015 (6 Jahre später)
Die letzte Version von git-for-Windows (2.5.3) enthält jetzt:
Siehe Commit 69b301b von Johannes Schindelin (
dscho
) .Und Git 2.16 (Q1 2018) zeigt eine Meldung an, die dem Benutzer mitteilt, dass er darauf wartet, dass der Benutzer die Bearbeitung beendet, wenn ein Editor erzeugt wird, falls sich der Editor in einem versteckten Fenster oder an einem dunklen Ort öffnet und der Benutzer verloren geht.
Siehe Commit abfb04d (07. Dezember 2017) und Commit a64f213 (29. November 2017) von Lars Schneider (
larsxschneider
) .Mit freundlicher
gitster
Unterstützung von Junio C Hamano ( ) .(Zusammengeführt von Junio C Hamano -
gitster
- in Commit 0c69a13 , 19. Dezember 2017)Ursprüngliche Antwort
Ich habe es gerade mit der Git-Version 1.6.2.msysgit.0.186.gf7512 und Notepad ++ 5.3.1 getestet
Ich bevorzuge es, keine EDITOR-Variable setzen zu müssen, also habe ich versucht:
Das gibt immer:
Wenn ich eine npp.bat definiere, einschließlich:
und ich tippe:
Es funktioniert nur von der DOS-Sitzung aus, aber nicht von der Git-Shell .
(Nicht, dass mit dem Konfigurationsmechanismus core.editor ein Skript mit "
start /WAIT...
" nicht funktionieren würde, sondern nur ein neues DOS-Fenster öffnen würde.)Bennetts Antwort erwähnt die Möglichkeit, das Hinzufügen eines Skripts zu vermeiden, aber das Programm selbst zwischen einfachen Anführungszeichen direkt zu referenzieren . Beachten Sie die Richtung der Schrägstriche! Verwenden Sie
/
NICHT\
, um Ordner im Pfadnamen zu trennen!Oder wenn Sie sich in einem 64-Bit-System befinden:
Aber ich ziehe mit einem Skript (siehe unten): die Art , wie ich mit verschiedenen Pfaden oder verschiedene Optionen , ohne dass eine erneute Registrierung spielen können
git config
.Die eigentliche Lösung (mit einem Skript) bestand darin, Folgendes zu realisieren:
Was Sie in der Konfigurationsdatei referenzieren, ist tatsächlich ein shell (
/bin/sh
) - Skript , kein DOS-Skript.Was also funktioniert, ist:
mit
C:/prog/git/npp.bat
:oder
Mit dieser Einstellung kann ich
git config --global --edit
unter DOS oder Git Shell odergit rebase -i ...
unter DOS oder Git Shell arbeiten.Bot-Befehle lösen eine neue Instanz von Notepad ++ aus (daher die
-multiInst
Option ') und warten, bis diese Instanz geschlossen ist, bevor Sie fortfahren.Beachten Sie, dass ich nur '/' verwende, nicht
\
'. Und ich habe msysgit mit Option 2 installiert. (Fügen Sie dasgit\bin
Verzeichnis derPATH
Umgebungsvariablen hinzu, ohne jedoch einige integrierte Windows-Tools zu überschreiben.)Die Tatsache, dass der Notepad ++ - Wrapper .bat heißt, ist nicht wichtig.
Es ist besser, es 'npp.sh' zu nennen und es in das
[git]\cmd
Verzeichnis zu stellen (oder in ein Verzeichnis, auf das Ihre PATH-Umgebungsvariable verweist).Siehe auch:
lightfire228 fügt in den Kommentaren hinzu :
quelle
git config
Einstellungen auf ein Skript zu verweisen .dir /X
Äquivalent: "PROGRA~2
" für "Program Files (x86)
". Dies ist eine gute Angewohnheit, wenn Sie plattformübergreifende kompatible Tools unter Windows verwenden, mit denen Sie Leerzeichen quetschen können.Aufbauend auf Darrens Antwort können Sie Notepad ++ einfach so verwenden (alles in einer Zeile):
Offensichtlich sollte der
C:/Program Files/Notepad++/notepad++.exe
Teil der Pfad zur ausführbaren Notepad ++ - Datei auf Ihrem System sein. Zum Beispiel könnte es seinC:/Program Files (x86)/Notepad++/notepad++.exe
.Es funktioniert wie ein Zauber für mich.
quelle
Wie auch immer, ich habe gerade damit herumgespielt und festgestellt, dass Folgendes für mich gut funktioniert:
Ich glaube nicht, dass CMD einfache Anführungszeichen mag, daher müssen Sie doppelte Anführungszeichen verwenden, "um das in das Leerzeichen eingebettete Zeichenfolgenargument anzugeben".
Cygwin (von dem ich glaube, dass es die zugrunde liegende Plattform für Git's Bash ist) mag andererseits beide
'
und"
; Sie können einen CMD-ähnlichen Pfad angeben, indem Sie/
anstelle von verwenden\
, solange die Zeichenfolge in Anführungszeichen steht, dh in diesem Fall in einfachen Anführungszeichen.Das
-m
Überschreiben / zeigt die Verwendung mehrerer Editoren an und es ist nicht erforderlich,%*
am Ende angeheftet zu werden.quelle
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"
wirkt wie ein Zauber für mich.editor = notepad
Bearbeiten: Nach dem Update auf Vim 7.3 bin ich zu dem Schluss gekommen, dass der sauberste und einfachste Weg dies zu tun ist:
Fügen Sie den Hauptordner von Vim zu Ihrem Pfad hinzu (klicken Sie mit der rechten Maustaste auf Arbeitsplatz → Eigenschaften → Erweitert → Umgebungsvariablen ).
Führen Sie Folgendes aus:
Wenn Sie es so machen, bin ich mir ziemlich sicher, dass es auch mit Cygwin funktionieren wird.
Ursprüngliche Antwort:
Selbst mit ein paar Vim-bezogenen Antworten hatte ich Probleme, dies mit gVim unter Windows zum Laufen zu bringen (ohne eine Batch-Datei oder% EDITOR% oder Cygwin zu verwenden).
Was ich schließlich erreicht habe, ist schön und sauber und basiert auf einigen der hier aufgeführten Lösungen:
Ein Problem, das mich eine Weile gekostet hat, ist, dass es sich nicht um Backslashes im Windows-Stil handelt. Sie sind normale Schrägstriche.
quelle
Program Files(x86)
, müssen Sie den Pfad offensichtlich ändern.Notepad ++ funktioniert einwandfrei, obwohl ich mich dafür entscheide, bei Notepad, -m oder manchmal sogar beim eingebauten "Bearbeiten" zu bleiben.
Das Problem bei der Verwendung von Notepad ++ hängt damit zusammen, wie Git die ausführbare Datei des Editors startet. Meine Lösung hierfür besteht darin, die Umgebungsvariable
EDITOR
auf eine Batchdatei anstatt auf die eigentliche ausführbare Editordatei festzulegen, die Folgendes bewirkt:/WAIT
Weist die Befehlszeilensitzung an, anzuhalten, bis die Anwendung beendet wird, sodass Sie nach Herzenslust bearbeiten können, während Git glücklich auf Sie wartet. % * übergibt alle Argumente an die Batchdatei an Notepad ++.quelle
WordPad !
Ich bin glücklich mit Vim, aber da ich versuche, Git in die Firma einzuführen, wollte ich etwas, das wir alle haben würden, und stellte fest, dass WordPad in Ordnung zu sein scheint (dh Git wartet, bis Sie mit der Bearbeitung fertig sind und schließen das Fenster).
Das ist Git Bash auf msysgit; Ich habe es nicht an der Windows-Eingabeaufforderung versucht (wenn das einen Unterschied macht).
quelle
Ich benutze Cygwin auch unter Windows, aber mit gVim (im Gegensatz zum terminalbasierten Vim ).
Damit dies funktioniert, habe ich Folgendes getan:
git_editor.bat
), die Folgendes enthält:"C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
git_editor.bat
in meinemPATH
.GIT_EDITOR=git_editor.bat
git commit
Wenn dies erledigt ist , wird usw. die ausführbare Datei gVim korrekt aufgerufen.HINWEIS 1: Die
--nofork
Option für gVim stellt sicher, dass sie blockiert wird, bis die Festschreibungsnachricht geschrieben wurde.HINWEIS 2: Die Anführungszeichen um den Pfad zu gVim sind erforderlich, wenn der Pfad Leerzeichen enthält.
HINWEIS 3: Die Anführungszeichen um "% *" werden nur für den Fall benötigt, dass Git einen Dateipfad mit Leerzeichen übergibt.
quelle
Dank der Stack Overflow-Community ... und ein wenig Recherche konnte ich meinen Lieblingseditor, EditPad Pro , dazu bringen, als Kerneditor mit msysgit 1.7.5.GIT und TortoiseGit v1.7.3.0 über Windows XP SP3 zu arbeiten. ..
Den obigen Ratschlägen folgend, habe ich den Pfad zu einem Bash-Skript für den Code-Editor hinzugefügt ...
Nach mehreren fehlgeschlagenen Versuchen mit den oben genannten Lösungen ... konnte ich dies endlich zum Laufen bringen. Gemäß der Dokumentation von EditPad Pro kann die Shell durch Hinzufügen des Flags '/ newinstance' auf die Eingabe des Editors warten ...
Das Flag ' / newinstance ' war in meinem Fall der Schlüssel ...
quelle
/newinstance
, die genau einen Schrägstrich enthalten sollen. Dies ist für Windows-Anwendungen ziemlich normal. Wenn Sie EditPad über eine UNIX-Shell aufrufen, müssen Sie den von Ihrer Shell angebotenen Mechanismus verwenden, um dem Schrägstrich zu entkommen, damit der Schalter nicht als absoluter Pfad angesehen wird und ein einzelner Literal-Schrägstrich an die Befehlszeile von EditPad übergeben wird./wait
Schalter in der Befehlszeile von EditPad übergeben. Sie können/wait
mit oder ohne/newinstance
steuern, ob ein neues EditPad-Fenster geöffnet oder ein vorhandenes Fenster wiederverwendet werden soll. Der von Ihrem Skript gestartete Prozess wartet darauf, dass die Datei geschlossen wird, unabhängig davon, ob ein Fenster erstellt oder wiederverwendet wurde. EditPad Pro 6 und frühere Versionen werden nicht unterstützt/wait
./wait
Flaggentipp, Sir ... :)[core]
Abschnitt von .gitconfig direkt zu bearbeiten , um die Zeile einzuschließeneditor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"
.Für Atom können Sie tun
und ähnliches für Visual Studio Code
Dadurch wird ein Atom- oder Visual Studio-Code geöffnet geöffnet, durch das Sie sich verpflichten können.
oder für erhabenen Text :
quelle
Bearbeiten Sie die .gitconfig-Datei im Ordner c: \ Users \ YourUser und fügen Sie Folgendes hinzu:
quelle
Dies ist das einzige Symptom für größere Probleme. Insbesondere, dass Sie etwas Einstellung haben
TERM=dumb
. Andere Dinge, die nicht richtig funktionieren, sind derless
Befehl, der besagt, dass Sie kein voll funktionsfähiges Terminal haben.Es scheint, dass dies am häufigsten dadurch verursacht wird, dass TERM in Ihren globalen Windows-Umgebungsvariablen auf etwas festgelegt ist. Für mich trat das Problem auf, als ich Strawberry Perl installierte. Einige Informationen dazu befinden sich im msysgit-Fehler für dieses Problem sowie verschiedene Lösungen.
Die erste Lösung besteht darin, das Problem in Ihrem ~ / .bashrc zu beheben, indem Sie Folgendes hinzufügen:
Sie können dies über die Git Bash-Eingabeaufforderung folgendermaßen tun:
Die andere Lösung, die letztlich ist das, was ich tat , weil ich nicht für das Hinzufügen von etwa Strawberry Perl Gründen ist es egal ,
TERM=dumb
um meine Umgebungseinstellungen, zu gehen und das entfernen ,TERM=dumb
wie in diesem Kommentar auf dem msysgit Fehlerbericht gerichtet .Wenn Sie Strawberry Perl verwenden und sich um den CPAN- Client oder ähnliches kümmern , können Sie das in
TERM=dumb
Ruhe lassen undunset TERM
in Ihrer ~ / .bashrc-Datei verwenden, was einen ähnlichen Effekt hat wie das Festlegen eines expliziten Begriffs wie oben.Natürlich sind alle anderen Lösungen insofern korrekt, als Sie
git config --global core.editor $MYFAVORITEEDITOR
sicherstellen können, dass Git Ihren bevorzugten Editor verwendet, wenn er einen für Sie starten muss.quelle
Vim / gVim funktioniert gut für mich.
quelle
PortableGit 1.6 funktionierte einwandfrei, aber nach dem Upgrade auf die Windows-Version PortableGit 1.7 hatte ich Probleme. Einige der Git-Befehle öffnen das Notepad ++. Exe in Ordnung, andere nicht, insbesondere die Git-Rebase verhält sich anders.
Das Problem ist, dass einige Befehle den Windows-Cmd-Prozess ausführen und andere den Unix-Cmd-Prozess verwenden. Ich möchte dem Notepad ++ - Editor Startattribute geben, daher benötige ich ein angepasstes Skript. Meine Lösung ist dies.
Erstellen Sie ein Skript, um einen geeigneten Texteditor auszuführen. Das Skript sieht seltsam aus, behandelt jedoch sowohl die Windows- als auch die Unix-Variante.
c: /PortableGit/cmd/git-editor.bat
Legen Sie die globale Variable core.editor fest
Das Skript wurde im Ordner git / cmd gespeichert, sodass es sich bereits in einem gitconsole-Pfad befindet. Dies ist obligatorisch, da ein vollständiger Pfad möglicherweise nicht ordnungsgemäß funktioniert.
Jetzt kann ich die Masterbefehle git commit -a und git rebase -i ausführen. Probieren Sie es aus, wenn Sie Probleme mit dem Git Windows-Tool haben.
quelle
Ich verwende Git auf mehreren Plattformen und verwende auf allen Plattformen gerne die gleichen Git-Einstellungen. (Tatsächlich habe ich alle meine Konfigurationsdateien mit Git unter Release-Kontrolle und platziere auf jedem Computer einen Git-Repository-Klon.) Die Lösung, die ich gefunden habe, ist folgende:
Ich habe meinen Editor auf giteditor eingestellt
Dann erstelle ich einen symbolischen Link namens giteditor , die in meinem ist PATH . (Ich habe ein persönliches bin- Verzeichnis, aber irgendwo im PATH funktioniert es.) Dieser Link verweist auf meinen aktuellen Editor Ihrer Wahl. Auf verschiedenen Computern und Plattformen verwende ich verschiedene Editoren. Dies bedeutet, dass ich meine universelle Git-Konfiguration ( .gitconfig ) nicht ändern muss, sondern nur den Link, auf den giteditor verweist.
Symbolische Links werden von jedem mir bekannten Betriebssystem verarbeitet, obwohl sie möglicherweise unterschiedliche Befehle verwenden. Für Linux verwenden Sie ln -s . Für Windows, verwenden Sie das cmd built-in mklink . Sie haben unterschiedliche Syntaxen (die Sie nachschlagen sollten), aber alles funktioniert wirklich auf die gleiche Weise.
quelle
error: cannot spawn giteditor: No such file or directory
Auf Vorschlag von VonC funktionierte dies für mich (machte mich verrückt):
Das Weglassen
-wait
kann zu Problemen führen, insbesondere wenn Sie mit Gerrit arbeiten und IDs ändern, die manuell in den unteren Bereich Ihrer Festschreibungsnachricht kopiert werden müssen.quelle
Ich musste beide der folgenden Schritte ausführen, damit Git Notepad ++ unter Windows startet:
Fügen Sie .gitconfig Folgendes hinzu:
Ändern Sie die Verknüpfung, um die Git Bash-Shell zu starten und als Administrator auszuführen, und verwenden Sie sie dann, um die Git Bash-Shell zu starten. Ich vermutete, dass der Kontextmenüeintrag "Git Bash here" Notepad ++ nicht mit den erforderlichen Berechtigungen startete.
Nachdem Sie beide oben genannten Schritte ausgeführt hatten, funktionierte es.
quelle
Ich benutze Cygwin unter Windows, also benutze ich:
Das
-nw
ist fürno-windows
, dh sagen Sie Emacs, dass sie nicht versuchen sollen, X Window zu verwenden .Die Emacs-Tastenkombinationen funktionieren bei mir nicht in einer Windows-Shell, daher würde ich sie nur in einer Cygwin-Shell verwenden ... ( rxvt wird empfohlen.)
quelle
Dies ist mein Setup, um Geany als Editor für Git zu verwenden:
mit folgendem Inhalt in
geany.bat
:Es funktioniert sowohl in einer DOS-Konsole als auch in msysgit.
quelle
Es scheint, als würde Git den Editor nicht finden, wenn der Pfad Leerzeichen enthält. Sie müssen also die in Patricks Antwort erwähnte Batch-Datei in einen Nicht-Leerzeichen-Pfad einfügen.
quelle
Ich hatte Schwierigkeiten, Git zur Zusammenarbeit zu bewegen WordPad , Komodo Edit und so ziemlich jedem anderen Editor, den ich gebe, zusammenzuarbeiten. Die meisten sind offen für die Bearbeitung, aber Git wartet eindeutig nicht auf das Speichern / Schließen.
Als Krücke habe ich gerade getan, dh
Dinge in Bewegung zu halten. Dadurch werden meine Commit-Nachrichten tendenziell etwas kürzer gehalten, als sie wahrscheinlich sein sollten, aber an der Windows-Version von Git muss natürlich noch einiges getan werden.
Die GitGUI ist auch nicht so schlecht. Es braucht ein wenig Orientierung, aber danach funktioniert es ziemlich gut.
quelle
Ich bevorzuge Emacs. Das Einrichten kann etwas schwierig sein.
c:\emacs
.c:\emacs\bin\addpm.exe
. Sie müssen mit der rechten Maustaste klicken und "Als Administrator ausführen", wenn Sie Windows Vista oder höher verwenden. Dadurch werden die ausführbaren Dateien in Ihren Pfad eingefügt.(server-start)
irgendwo in Ihrer.emacs
Datei hinzu. In den häufig gestellten Fragen zu Emacs Windows finden Sie Hinweise zum Ablegen Ihrer.emacs
Datei.git config --global core.editor emacsclientw
Git öffnet nun Dateien innerhalb eines vorhandenen Emacs-Prozesses. Sie müssen diesen vorhandenen Prozess manuell von ausführen
c:\emacs\bin\runemacs.exe
.quelle
Ich habe es geschafft, die Umgebungsversion zum Laufen zu bringen, indem ich die EDITOR-Variable mit Anführungszeichen und
/
: gesetzt habe.quelle
Ich hatte gerade das gleiche Problem und fand eine andere Lösung. Ich bekam
Ich habe
VISUAL=ec
eine Batch-Dateiec.bat
auf meinem Pfad, die eine Zeile enthält:Auf diese Weise kann ich Dateien über die Befehlszeile bearbeiten
ec <filename>
, und wenn sieVISUAL
festgelegt sind, werden sie auch von den meisten Unixy-Programmen abgerufen. Git scheint den Pfad jedoch anders zu durchsuchen als meine anderen Befehle - als ich mir einengit commit
in Process Monitor ansah, sah ich, dass er in jedem Ordner auf dem Pfad nachec
und für suchteec.exe
, aber nicht nachec.bat
. Ich habe eine weitere Umgebungsvariable (GIT_EDITOR=ec.bat
) hinzugefügt und alles war in Ordnung.quelle
Ich verwende GitHub für Windows, was eine schöne visuelle Option ist. Ich bevorzuge aber auch die Befehlszeile. Damit sie beim Öffnen eines Repositorys in einer Git-Shell funktioniert, habe ich einfach Folgendes festgelegt:
das funktioniert super.
quelle
Dies funktioniert für PowerShell und cmder 1.2 (bei Verwendung mit PowerShell). In Datei
~/.gitconfig
:Wie kann ich Sublime Text zum Standardeditor für Git machen?
quelle
Ich habe hier eine sehr einfache Lösung gefunden - obwohl möglicherweise ein Fehler im Pfad vorliegt, in dem Sie die vom Autor angegebene "subl" -Datei kopieren müssen.
Ich verwende Windows 7 x64 und musste die "subl" -Datei in meinen
/Git/cmd/
Ordner legen, damit sie funktioniert.Es funktioniert jedoch wie ein Zauber.
quelle
Atom und Windows 10
Ich habe dies in Git Bash eingegeben:
Hinweis: Ich habe alles
\
für geändert/
. Ich habe eine .bashrc-Datei in meinem Home-Verzeichnis erstellt und/
mein Home-Verzeichnis festgelegt. Es hat funktioniert, daher habe ich angenommen,/
dass dies der richtige Weg ist.Atom-Editor git Git-Bash Windows-10
quelle
Hier ist eine Lösung mit Cygwin:
Wenn kein Pfad vorhanden ist, übergeben Sie keinen Pfad
Wenn der Pfad leer ist, übergeben Sie den leeren Pfad
Wenn der Pfad nicht leer ist, konvertieren Sie ihn in das Windows-Format.
Dann setze ich diese Variablen:
Mit EDITOR kann das Skript mit Git arbeiten
Mit GIT_EDITOR kann das Skript mit Hub-Befehlen arbeiten
Quelle
quelle
Dies funktioniert bei mir mit Cygwin und TextPad 6 (BEARBEITEN: es funktioniert auch mit TextPad 5, solange Sie die offensichtliche Änderung am Skript vornehmen), und vermutlich könnte das Modell auch für andere Editoren verwendet werden:
Datei
~/.gitconfig
:Datei
~/script/textpad.sh
:Dieser Einzeiler funktioniert auch:
Datei
~/script/textpad.sh
(Option 2):quelle
Das hat bei mir funktioniert:
Das ist es!
HINWEIS: Sublime Text 3 ist der Editor, den ich für dieses Beispiel verwendet habe.
quelle