Próbuję Git na Windows . Doszedłem do tego, że próbowałem „git commit” i otrzymałem ten błąd:
Terminal jest głupi, ale nie ma VISUAL ani EDITOR. Podaj wiadomość za pomocą opcji -m lub -F.
Zrozumiałem, że potrzebuję zmiennej środowiskowej o nazwie EDITOR. Nie ma problemu. Ustawiłem go tak, aby wskazywał Notatnik. To działało prawie. Domyślny komunikat zatwierdzenia zostanie otwarty w Notatniku. Ale Notatnik nie obsługuje pustych linii. Wyszedłem i dostałem Notepad ++ , ale nie mogę wymyślić, jak skonfigurować Notepad ++ %EDITOR%
w taki sposób, aby działał z Git zgodnie z oczekiwaniami.
Nie jestem żonaty z Notepad ++. W tym momencie nie mam nic przeciwko temu, jakiego edytora używam. Chcę tylko móc pisać komunikaty zatwierdzania w edytorze zamiast w wierszu poleceń (z -m
).
Ci z was, którzy używają Git w systemie Windows: Jakiego narzędzia używasz do edytowania wiadomości zatwierdzania i co musiałeś zrobić, aby działało?
git config core.editor notepad
wystarczy już prosty . Zobacz moją zaktualizowaną odpowiedź poniżej .Odpowiedzi:
Aktualizacja wrzesień 2015 r. (6 lat później)
Ostatnim wydaniu git-for-windows (2.5.3) obejmuje obecnie:
Zobacz commit 69b301b przez Johannesa Schindelina (
dscho
) .A Git 2.16 (Q1 2018) wyświetli komunikat informujący użytkownika, że czeka on na zakończenie edycji podczas tworzenia spawacza w przypadku, gdy edytor otworzy się na ukryte okno lub gdzieś niejasne i użytkownik się zgubi.
Zobacz commit abfb04d (07 grudnia 2017 r.) I commit a64f213 (29 listopada 2017 r.) Autor: Lars Schneider (
larsxschneider
) .Pomagał: Junio C Hamano (
gitster
) .(Połączone przez Junio C Hamano -
gitster
- w commit 0c69a13 , 19 grudnia 2017)Oryginalna odpowiedź
Właśnie przetestowałem go z git w wersji 1.6.2.msysgit.0.186.gf7512 i Notepad ++ 5.3.1
Wolę nie ustawiać zmiennej EDITOR, więc próbowałem:
To zawsze daje:
Jeśli zdefiniuję npp.bat, w tym:
i piszę:
Działa po prostu z sesji DOS, ale nie z powłoki git .
(nie że w przypadku mechanizmu konfiguracji core.editor skrypt z „
start /WAIT...
” nie działałby, ale otwierałby tylko nowe okno DOS)Odpowiedź Bennetta wspomina o możliwości uniknięcia dodania skryptu, ale o bezpośrednim odwołaniu do samego programu między prostymi cytatami . Zwróć uwagę na kierunek cięcia! Użyj
/
NIE,\
aby oddzielić foldery w nazwie ścieżki!Lub jeśli jesteś w systemie 64-bitowym:
Ale wolę używać skryptu (patrz poniżej): w ten sposób mogę grać z różnymi ścieżkami lub różnymi opcjami bez konieczności ponownej rejestracji
git config
.Rzeczywistym rozwiązaniem (ze skryptem) było uświadomienie sobie, że:
to, o czym mówisz w pliku konfiguracyjnym, to tak naprawdę
/bin/sh
skrypt powłoki ( ) , a nie skrypt DOS.Więc co działa to:
z
C:/prog/git/npp.bat
:lub
Przy tym ustawieniu mogę zrobić „
git config --global --edit
z DOS lub Git Shell” lubgit rebase -i ...
„DOS” lub Git Shell.Polecenia bota wywołują nowe wystąpienie notatnika ++ (stąd
-multiInst
opcja „) i czekają na zamknięcie tego wystąpienia przed kontynuowaniem.Zauważ, że używam tylko „/”, a nie
\
„. I zainstalowałem msysgit za pomocą opcji 2. (Dodajgit\bin
katalog doPATH
zmiennej środowiskowej, ale bez przesłonięcia niektórych wbudowanych narzędzi systemu Windows)Fakt, że otoki notatnika ++ nazywa się .bat, nie jest ważne.
Lepiej byłoby nazwać go „npp.sh” i umieścić go w
[git]\cmd
katalogu (lub w dowolnym katalogu, do którego odwołuje się zmienna środowiskowa PATH).Zobacz też:
lightfire228 dodaje w komentarzach :
źródło
git config
ustawieniach.dir /X
odpowiednika: „PROGRA~2
” dla „Program Files (x86)
”, który jest dobrym nawykiem, do którego można się stosować przy korzystaniu z narzędzi kompatybilnych z wieloma platformami w systemie Windows, co pozwala zmiażdżyć białe znaki.Opierając się na odpowiedzi Darrena , aby użyć Notepad ++, możesz po prostu to zrobić (wszystko w jednym wierszu):
Oczywiście
C:/Program Files/Notepad++/notepad++.exe
częścią powinna być ścieżka do pliku wykonywalnego Notepad ++ w systemie. Na przykład może byćC:/Program Files (x86)/Notepad++/notepad++.exe
.Dla mnie to działa jak urok.
źródło
W każdym razie po prostu się z tym bawiłem i odkryłem, że dla mnie ładnie działa:
Nie sądzę, że CMD lubi pojedyncze cudzysłowy, więc musisz użyć podwójnych cudzysłowów „, aby określić argument osadzonego spacji”.
Z drugiej strony Cygwin (który, jak sądzę, jest platformą Git's Bash), lubi jedno
'
i drugie"
; możesz określić ścieżki podobne do CMD, używając/
zamiast\
, o ile ciąg jest cytowany, tj. w tym przypadku, używając pojedynczych cudzysłowów.Do
-m
nadpisania / wskazuje na wykorzystanie wielu redaktorów i nie ma potrzeby dla%*
dołączona na końcu.źródło
git config --global core.editor "'C:\Program Files\Sublime Text 3\sublime_text.exe' -m"
działa jak urok dla mnie.editor = notepad
Edycja: Po aktualizacji do Vima 7.3 doszedłem do wniosku, że najczystszym i najłatwiejszym sposobem na to jest:
Dodaj główny folder Vima do swojej ścieżki (kliknij prawym przyciskiem myszy Mój komputer → Właściwości → Zaawansowane → Zmienne środowiskowe )
Uruchomić to:
Jeśli zrobisz to w ten sposób, jestem całkiem pewien, że będzie również działać z Cygwinem.
Oryginalna odpowiedź:
Nawet z kilkoma odpowiedziami związanymi z Vimem miałem problem z uruchomieniem go z gVimem pod Windows (nie używając pliku wsadowego lub% EDITOR% lub Cygwin).
To, co ostatecznie osiągnąłem, jest ładne i czyste, i czerpie z kilku rozwiązań tutaj:
Jedną chwilę zajęło mi to, że nie są to odwrotne ukośniki w stylu Windows. Są to normalne ukośniki.
źródło
Program Files(x86)
, musisz oczywiście zmienić ścieżkę.Notepad ++ działa dobrze, chociaż wybrałem trzymanie się Notatnika, -m, a czasem nawet wbudowanej „edycji”.
Problem, który napotykasz za pomocą Notepad ++, jest związany ze sposobem uruchamiania przez Git pliku wykonywalnego edytora. Moim rozwiązaniem jest ustawienie zmiennej środowiskowej
EDITOR
na plik wsadowy zamiast na rzeczywisty plik wykonywalny edytora, który wykonuje następujące czynności:/WAIT
nakazuje zatrzymanie sesji wiersza poleceń, dopóki aplikacja nie zostanie zamknięta, dzięki czemu będziesz mógł edytować zawartość swojego serca, podczas gdy Git z radością na ciebie czeka. % * przekazuje wszystkie argumenty do pliku wsadowego do Notepad ++.źródło
WordPad !
Cieszę się, że korzystam z Vima, ale odkąd próbuję przedstawić Git firmie, chciałem czegoś, co wszyscy mielibyśmy, i stwierdziłem, że WordPad wydaje się działać dobrze (tj. Git czeka, aż skończysz edytować i zamknąć okno).
To używa Git Bash na msysgit; Nie próbowałem z wiersza polecenia systemu Windows (jeśli to robi jakąkolwiek różnicę).
źródło
Używam również Cygwin w systemie Windows, ale z gVimem (w przeciwieństwie do Vima opartego na terminalu ).
Aby to zadziałało, wykonałem następujące czynności:
git_editor.bat
), który zawiera następujące elementy:"C:/Program Files/Vim/vim72/gvim.exe" --nofork "%*"
git_editor.bat
w moimPATH
.GIT_EDITOR=git_editor.bat
Po wykonaniu tej czynności
git commit
itd. Poprawnie wywoła plik wykonywalny gVim.UWAGA 1:
--nofork
Opcja gVim zapewnia, że blokuje się, dopóki nie zostanie napisany komunikat zatwierdzenia.UWAGA 2: Cytaty wokół ścieżki do gVim są wymagane, jeśli masz spacje na ścieżce.
UWAGA 3: Cytaty wokół „% *” są potrzebne na wypadek, gdyby Git przekroczył ścieżkę do pliku ze spacjami.
źródło
Dzięki społeczności Stack Overflow ... i małym badaniom udało mi się zdobyć mojego ulubionego edytora, EditPad Pro , do pracy jako główny edytor w msysgit 1.7.5.GIT i TortoiseGit v1.7.3.0 w systemie Windows XP SP3. ..
Zgodnie z powyższą radą dodałem ścieżkę do skryptu Bash dla edytora kodu ...
Jednak po kilku nieudanych próbach wyżej wymienionych rozwiązań ... w końcu udało mi się to uruchomić. Zgodnie z dokumentacją EditPad Pro dodanie flagi „/ newinstance” pozwoliłoby powłoce czekać na dane wejściowe edytora ...
Flaga „ / newinstance ” była w moim przypadku kluczem ...
źródło
/newinstance
aby mieć dokładnie jeden ukośnik. Jest to dość normalne w przypadku aplikacji Windows. Jeśli wywołujesz EditPad z powłoki UNIX, musisz użyć dowolnego mechanizmu, który oferuje powłoka, aby uciec przed ukośnikiem, aby nie widział przełącznika jako ścieżki bezwzględnej i przekazał pojedynczy dosłowny ukośnik do wiersza poleceń EditPada./wait
przełączyć przełącznik w linii poleceń EditPad. Możesz używać/wait
z lub bez,/newinstance
aby kontrolować, czy nowe okno EditPad powinno zostać otwarte, czy też istniejące okno powinno zostać ponownie użyte. Proces uruchomiony przez skrypt będzie czekał na zamknięcie pliku bez względu na to, czy okno zostało utworzone, czy ponownie użyte. EditPad Pro 6 i wcześniejsze nie obsługują/wait
./wait
wskazówkę dotyczącą flagi, proszę pana ... :)[core]
sekcji .gitconfig w celu włączenia liniieditor = "'C:/Program Files/Just Great Software/EditPad Lite 7/EditPadLite7.exe' //wait //newinstance"
.W przypadku Atoma możesz to zrobić
i podobne w przypadku Visual Studio Code
które otworzy okno Atom lub Visual Studio Code do zatwierdzenia,
lub w przypadku wysublimowanego tekstu :
źródło
Edytuj plik .gitconfig w folderze c: \ Users \ YourUser i dodaj:
źródło
Jest to jeden z objawów większych problemów. Zwłaszcza, że masz coś ustawienia
TERM=dumb
. Inne rzeczy, które nie działają poprawnie, toless
polecenie, które mówi, że nie masz w pełni funkcjonalnego terminala.Wydaje się, że jest to najczęściej spowodowane ustawieniem TERM na coś w globalnych zmiennych środowiska Windows. Dla mnie problem pojawił się, gdy zainstalowałem Strawberry Perl, niektóre informacje na ten temat znajdują się w błędzie msysgit tego problemu, a także kilka rozwiązań.
Pierwszym rozwiązaniem jest naprawienie go w ~ / .bashrc poprzez dodanie:
Możesz to zrobić z wiersza polecenia Git Bash w następujący sposób:
Innym rozwiązaniem, które ostatecznie jest tym, co zrobiłem, ponieważ nie dbam o powody, dla których Strawberry Perl dodaje
TERM=dumb
do moich ustawień środowiska, to pójść i usunąćTERM=dumb
zgodnie z opisem w tym komentarzu do raportu o błędzie msysgit .Podobnie, jeśli używasz Strawberry Perl i zależy ci na kliencie CPAN lub czymś takim, możesz zostawić to
TERM=dumb
samo i użyćunset TERM
w swoim pliku ~ / .bashrc, co będzie miało podobny efekt jak ustawienie wyraźnego terminu jak wyżej.Oczywiście, wszystkie pozostałe rozwiązania są poprawne, ponieważ możesz użyć,
git config --global core.editor $MYFAVORITEEDITOR
aby upewnić się, że Git używa twojego ulubionego edytora, gdy trzeba go uruchomić.źródło
Vim / gVim działa dobrze dla mnie.
źródło
Miałem dobrze PortableGit 1.6, ale po aktualizacji do wersji Windows PortableGit 1.7 miałem problemy. Niektóre polecenia Git otwierają Notepad ++. Exe dobrze, ale niektóre nie, zwłaszcza Git rebase zachowuje się inaczej.
Problem polega na tym, że niektóre polecenia uruchamiają proces cmd systemu Windows, a niektóre korzystają z procesu cmd systemu Unix. Chcę nadać atrybuty uruchamiania edytorowi Notepad ++, więc muszę mieć dostosowany skrypt. Moje rozwiązanie jest takie.
Utwórz skrypt, aby uruchomić odpowiedni edytor tekstu. Skrypt wygląda dziwnie, ale obsługuje zarówno wersje Windows, jak i Unix.
c: /PortableGit/cmd/git-editor.bat
Ustaw globalną zmienną core.editor
Skrypt został zapisany w folderze git / cmd, więc jest już w ścieżce gitconsole. Jest to obowiązkowe, ponieważ pełna ścieżka może nie działać poprawnie.
Teraz mogę uruchomić polecenia git commit -a i git rebase -i master . Spróbuj, jeśli masz problemy z narzędziem Git Windows.
źródło
Używam Git na wielu platformach i lubię używać tych samych ustawień Git na wszystkich z nich. (W rzeczywistości mam wszystkie moje pliki konfiguracyjne pod kontrolą wersji Git i umieszczam klon repozytorium Git na każdym komputerze). Rozwiązanie, które wymyśliłem, to:
Mogę ustawić edytor do giteditor
Następnie tworzę dowiązanie symboliczne o nazwie giteditor, które jest w mojej ŚCIEŻCE . (Mam osobisty katalog bin , ale gdziekolwiek w ŚCIEŻCE działa.) Ten link wskazuje na mojego obecnego edytora. Na różnych komputerach i platformach używam różnych edytorów, więc oznacza to, że nie muszę zmieniać mojej uniwersalnej konfiguracji Git ( .gitconfig ), tylko link, na który wskazuje gitor .
Dowiązania symboliczne są obsługiwane przez każdy znany mi system operacyjny, chociaż mogą używać różnych poleceń. W systemie Linux używasz ln -s . W przypadku systemu Windows, należy użyć cmd wbudowany mklink . Mają różne składnie (na które powinieneś spojrzeć), ale to wszystko działa tak samo, naprawdę.
źródło
error: cannot spawn giteditor: No such file or directory
W oparciu o sugestię VonC zadziałało to dla mnie (doprowadzało mnie do szału):
Pominięcie
-wait
może powodować problemy, szczególnie jeśli pracujesz z Gerrit i zmieniasz identyfikatory, które należy ręcznie skopiować na dół wiadomości zatwierdzenia.źródło
Musiałem wykonać obie poniższe czynności, aby Git uruchomił Notepad ++ w systemie Windows:
Dodaj następujące .gitconfig:
Zmodyfikuj skrót, aby uruchomić powłokę Git Bash, aby działał jako administrator, a następnie użyj go do uruchomienia powłoki Git Bash. Zgadywałem, że pozycja menu kontekstowego „Git Bash tutaj” nie uruchamia Notepad ++ z wymaganymi uprawnieniami.
Po wykonaniu obu powyższych czynności zadziałało.
źródło
Używam Cygwin w systemie Windows, więc używam:
To
-nw
znaczyno-windows
, tzn. Powiedz Emacsowi, aby nie próbował używać X Window .Skróty klawiszowe Emacsa nie działają dla mnie z powłoki Windows, więc użyłbym tego tylko z powłoki Cygwin ... ( zalecane jest rxvt ).
źródło
Oto moja konfiguracja używania Geany jako edytora dla Git:
o następującej treści w
geany.bat
:Działa zarówno w konsoli DOS, jak i msysgit.
źródło
Wygląda na to, że Git nie znajdzie edytora, jeśli na ścieżce są spacje. Będziesz musiał umieścić plik wsadowy wspomniany w odpowiedzi Patricka w ścieżce spacji.
źródło
Miałem trudności z przekonaniem Gita do współpracy z WordPadem , Komodo Edit i praktycznie każdym innym edytorem, który mu udostępniam. Najczęściej otwarty do edycji, ale Git najwyraźniej nie czeka na zapisanie / zamknięcie.
Jako kulę właśnie to robiłem, tj
aby utrzymać ruch. Zazwyczaj moje komunikaty zatwierdzania są nieco krótsze, niż powinny być, ale najwyraźniej jest trochę pracy w wersji Git dla Windows.
GitGUI też nie jest taki zły. To wymaga trochę orientacji, ale potem działa całkiem dobrze.
źródło
Wolę używać Emacsa. Przygotowanie go może być trochę trudne.
c:\emacs
.c:\emacs\bin\addpm.exe
. Jeśli używasz systemu Windows Vista lub nowszego, musisz kliknąć prawym przyciskiem myszy i „Uruchom jako administrator”. Spowoduje to umieszczenie plików wykonywalnych na twojej ścieżce.(server-start)
gdzieś w swoim.emacs
pliku. Zobacz najczęściej zadawane pytania dotyczące systemu Emacs dla systemu Windows, aby dowiedzieć się, gdzie umieścić.emacs
plik.git config --global core.editor emacsclientw
Git będzie teraz otwierać pliki w ramach istniejącego procesu Emacsa. Będziesz musiał uruchomić istniejący proces ręcznie z
c:\emacs\bin\runemacs.exe
.źródło
Udało mi się uruchomić wersję środowiska, ustawiając zmienną EDITOR za pomocą cudzysłowów i
/
:źródło
Właśnie miałem ten sam problem i znalazłem inne rozwiązanie. Dostawałem
Mam
VISUAL=ec
i plik wsadowy wywołanyec.bat
na mojej ścieżce, który zawiera jeden wiersz:To pozwala mi edytować pliki z wiersza poleceń za pomocą
ec <filename>
, aVISUAL
ustawienie oznacza, że większość programów unixy też je odbiera. Git wydaje się szukać ścieżki inaczej do moich innych poleceń chociaż - gdy spojrzałem nagit commit
w Process Monitor Widziałem to wyglądać w każdym folderze na drodze doec
iec.exe
, ale nieec.bat
. Dodałem kolejną zmienną środowiskową (GIT_EDITOR=ec.bat
) i wszystko było w porządku.źródło
Używam GitHub dla Windows, który jest ładną opcją wizualną. Ale wolę również wiersz poleceń, więc aby działał, gdy otwieram repozytorium w powłoce Git, po prostu ustawiam następujące:
co działa świetnie.
źródło
Działa to dla PowerShell i cmder 1.2 (w połączeniu z PowerShell). W pliku
~/.gitconfig
:Jak mogę ustawić Sublime Text jako domyślny edytor Git?
źródło
Znalazłem aa pięknie proste rozwiązanie pisał tutaj - chociaż mogą być błędem w ścieżce, w której trzeba skopiować nad „subl” plik podany przez autora.
Korzystam z systemu Windows 7 x64 i musiałem umieścić plik „subl” w moim
/Git/cmd/
folderze, aby działał.Jednak działa jak urok.
źródło
Atom i Windows 10
Wpisałem to w Git Bash:
Uwaga: zmieniłem wszystko
\
na/
. Utworzyłem .bashrc w moim katalogu domowym i/
ustawiłem swój katalog domowy i zadziałało, więc założyłem, że/
będzie to dobra droga.edytor atomów git git-bash Windows-10
źródło
Oto rozwiązanie z Cygwin:
Jeśli nie ma ścieżki, nie podawaj ścieżki
Jeśli ścieżka jest pusta, podaj pustą ścieżkę
Jeśli ścieżka nie jest pusta, przekonwertuj na format Windows.
Następnie ustawiam te zmienne:
EDYTOR pozwala skryptowi współpracować z Git
GIT_EDITOR pozwala skryptowi współpracować z poleceniami Hub
Źródło
źródło
Działa to dla mnie przy użyciu Cygwin i TextPad 6 (EDYCJA: działa również z TextPad 5, o ile wprowadzisz oczywistą zmianę w skrypcie) i przypuszczalnie model może być również używany w innych edytorach:
Plik
~/.gitconfig
:Plik
~/script/textpad.sh
:Ten jednowarstwowy działa również:
Plik
~/script/textpad.sh
(opcja 2):źródło
To działało dla mnie:
Otóż to!
UWAGA: Sublime Text 3 to edytor, którego użyłem w tym przykładzie.
źródło