Domyślnie git diff
wypisuje wszystkie +-
linie na stdout, jednak mam maszynę (devian) (którą łączę się przez ssh), gdzie git diff
prowadzi mnie do edytora (którego nie wiem, który jest) i muszę nacisnąć, qaby kontynuować.
Mam checker git config i wygląda to tak:
$ git config --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=XXX
branch.master.remote=origin
branch.master.merge=refs/heads/master
$ git config --global --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory
Czy brakuje mi miejsca? Może nieznane narzędzie jest awaryjne lub coś takiego, ponieważ mój komputer czegoś brakuje? Każda pomoc jest mile widziana. Dzięki.
Odpowiedzi:
Domyślnie Git wysyła swoje wyjście różnicowe (i ogólnie każde wyjście, które może być większe niż ekranowe) do pagera systemowego , który jest narzędziem, które drukuje tylko jeden ekran wyjścia na raz. Jeśli chcesz wyłączyć pager po uruchomieniu polecenia, przekaż
--no-pager
do Gita:Można to uruchomić dla dowolnego polecenia Git.
Jeśli chcesz wyłączyć to domyślnie tylko dla diff , możesz ustawić pager diff na
cat
:Jeśli chcesz wyłączyć to domyślnie dla wszystkich poleceń , możesz ustawić pager Git na
cat
, uruchamiając:źródło
git config --global core.pager cat
zrobił to !. Dziękuję :)git
( nie podkomendie)?git branch
np.git config pager.branch false
Następująca
core.pager
wartość używaless
, która drukuje na stdout, a także ma funkcjonalność pagera (jeśli jest to wymagane), umożliwiając przewijanie w górę iw dół (w przeciwieństwiecat
):Natychmiast kończy pracę, jeśli diff pasuje do pierwszego screen (
-F
), wypisuje surowe znaki sterujące (-R
), odcina długie linie zamiast wrapping (-S
) i nie używa termcap init / deinit strings (-X
).źródło
Możesz także po prostu użyć
cat
dowolnegogit
polecenia, jeśli nie dbasz o kolory.Więc
git diff | cat
dla twojego przypadku.Edycja: jak wskazano w komentarzach, jeśli zależy Ci na kolorach, użyj:
git diff --color | cat
źródło
git diff --color | cat
(: