2009-06-17 9 views
6

wenn ich versuche, ein git zu machen in Emacs Eshell Modus begehen:Problem mit Git und Emacs Eshell Modus auf Windows

 
git commit -a -m "message" 

Ich erhalte eine Fehlermeldung:

 
'c:\Program' is not recognized as an internal or external command, 
operable program or batch file. 

und zugleich dieses Problem ist im Emacs-Shell-Modus nicht vorhanden. Wie man eshell Arbeit richtig mit git erzwingt?

+1

Darf ich auch Magit vorschlagen? http://zagadka.vm.bytemark.co.uk/magit/magit.html – baudtack

+0

Habe den gleichen Fehler auf MacOS. Wo füge ich den Pfad hinzu, so dass eshell es sieht? – Schpaencoder

Antwort

4

Dies scheint ein Problem mit dem Leerzeichen im Verzeichnisnamen des Programms zu sein, das Sie ausführen möchten; Dieser Leerraum scheint nicht korrekt zu entkommen.

Wenn Sie zum Beispiel "C: \ Programme \ git \ git.exe commit ..." ausführen möchten, müssen Sie den ersten Leerzeichen entweder maskieren oder den gesamten Pfadnamen in Anführungszeichen setzen Diese Zeile wird in die Token "C: \ Programme", "Files \ git \ git.exe", "..." geparst, wobei das erste Token der auszuführende Befehl ist.

"C:\Program Files\git\git.exe" commit ... 
+1

Ich habe Problem gelöst durch Neuinstallation von Git in c:/git, so dass es keine Leerzeichen in den Pfaden – Andreo

1

hatte ich das gleiche Problem, und „gelöst“ durch PATH so geändert wird, dass git:

Eine erste Abhilfe den vollständigen Namen von Hand zu erweitern und setzen Sie ihn in Anführungszeichen, zB wäre. exe (in c:\Program Files\Git\bin) kommt vor git.cmd (in c:\program files\git\cmd, IIRC).

2

Ich weiß nicht über speziell mit Git und Emacs, aber mit anderen Anwendungen hat es für mich funktioniert, Program Files durch Progra~1 in Ihrem PATH zu ersetzen.

+0

der Fehler irgendwo in git oder emacs.eshell auftritt, so kann ich nicht verwalten – Andreo

-2

Uh, eshell und git? Warum?

Verwenden Sie einfach Magit zum Aufrufen von Git aus Emacs; es ist viel reicher als die Befehlszeilenschnittstelle.

+0

-1 Magit-Schnittstelle wird nicht unterstützt alles, was die Befehlszeilenschnittstelle tut. Zum Beispiel unterstützt es PGP-Signing-Commits nicht, was es für mich zu einem Nicht-Starter macht. –

3

Hatte ein ähnliches Problem, das ist für magit, (auf MacOS). Fügen Sie Folgendes in Ihre Emacs-Startup-Datei ein:

(add-to-list 'exec-path "/usr/local/git/bin") 
(setq magit-git-executable "/usr/local/git/bin/git")