Używam msysgit 1.7.7.1 na Windows. Podczas używania programu pojawia się błąd git diff
. Co jest tego przyczyną? Czy w msysgit nie ma narzędzia porównywania? Co powinienem zrobić?
UWAGA: terminal nie jest w pełni funkcjonalny
Używam msysgit 1.7.7.1 na Windows. Podczas używania programu pojawia się błąd git diff
. Co jest tego przyczyną? Czy w msysgit nie ma narzędzia porównywania? Co powinienem zrobić?
UWAGA: terminal nie jest w pełni funkcjonalny
Odpowiedzi:
W przypadku Git Bash można to naprawić, dodając następujący wiersz do ~ / .bashrc:
export TERM=cygwin
-lub-
export TERM=msys
Pierwsza wydaje się być oryginalna przez git for Windows, druga jest popularną znaną formą „leczenia”.
Problem może być spowodowany tym, że inny program (na przykład Strawberry Perl ) ustawia TERM
zmienne środowiskowe systemu.
setx TERM msys
. SETX
(w przeciwieństwie do samego SET) zapisuje zmienną env do rejestru.
Jeśli na przykład masz problemy z cmd.exe, zobacz ostrzeżenie tutaj:
Następnie po prostu ustaw zmienne środowiskowe i dołącz TERM = msys. Następnie za każdym razem, gdy otworzysz cmd.exe, zmienna zostanie ustawiona poprawnie.
TERAZ MUSISZ PONOWNIE URUCHOMIĆ MUSZĘ (CMD.EXE). Po prostu uruchom nowy. Od tego momentu nie powinieneś mieć więcej problemów. Jeszcze raz:
Powyższe odpowiedzi nie w pełni działały dla mnie, więc zrobiłem: Dodaj
export TERM=msys
do " [githome] / etc / profile " u góry, ale wprowadził zmiany tylko dla git bash. Potem dodałem
@set TERM=msys
do " [githome] /cmd/git.cmd " po @setlocal (zainstalowałem tylko git run z linii poleceń). Może ta decyzja nie jest naprawdę dobra, ale działa dla mnie i nie ma żadnych ostrzeżeń terminalowych. (Używam git w wersji 1.7.10.msysgit.1).
Odpowiedź można znaleźć tutaj , w której autor rozwiązania twierdzi, że:
zmienna środowiskowa
TERM
została ustawiona nadumb
to było zamiast
TERM=cygwin
Możesz to zmienić na
TERM=msys
aby rozwiązać problem.
Pracuję w PowerShell i mam plik wykonywalny git bezpośrednio na mojej ścieżce.
Żadna z sugerowanych odpowiedzi nie zadziałała, ale znalazłem rozwiązanie, które działa dla mnie.
Dodałem wiersz w moim profilu PowerShell:
$env:TERM="msys"
Który rozwiązał problem.
Szybkim i brudnym rozwiązaniem w moim przypadku okazało się skorzystanie z --no-pager
opcji.
Domyślnie niektóre polecenia git (takie jak log
) będą używać pagera, tak jak less
wtedy, gdy oczekują, że dane wyjściowe będą długie. Pagery wymagają rzeczy takich jak przewijanie tekstu w górę iw dół za pomocą klawiszy strzałek, co czasami nie działa, jeśli założenia dotyczące typu terminala są błędne (to właśnie oznacza „nie w pełni funkcjonalny”).
Jeśli wiesz z wyprzedzeniem, że twoje dane wyjściowe będą krótkie, lub po prostu chcesz, aby zrzuciło wyjście do terminala i pozostawiło przewijanie do twojego programu terminala, możesz to nadpisać i w ogóle nie używać pagera, np:
git --no-pager log
W przypadku, gdy ktoś otrzyma ten uruchamiający bash z rozszerzeń Git, sprawdź ustawienie Path to linux tools...
. Mój był ustawiony na C:\cygwin
. Zmieniam to, żeby C:\Program Files (x86)\Git\bin\
naprawić to dla mnie. Nie musiałem ustawiać zmiennej TERM, aby uruchomić bash w ten sposób.