it-swarm.com.de

Wie macht man git diff in stdout schreiben?

Standardmäßig git diff druckt alle +- zeilen zum stdout aber ich habe eine (devian) maschine (die ich über ssh verbinde) wo git diff führt mich zu einem Editor (den ich nicht kenne) und ich muss drücken q weitermachen.

Ich habe checker git config und es sieht so aus:

$ git config --list
user.name=XXX
[email protected]
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
[email protected]
color.ui=false
difftool.Prompt=false
mergetool.Prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory

Gibt es einen Ort, an dem ich vermisse? Vielleicht ist das unbekannte Tool ein Fallback oder so etwas, weil mir auf meiner Maschine etwas fehlt? Jede Hilfe wird geschätzt. Vielen Dank.

66
nacho4d

Standardmäßig sendet Git seine Diff-Ausgabe (und im Allgemeinen jede Ausgabe, die mehr als eine Bildschirmausgabe sein kann) an Pager des Systems, ein Dienstprogramm, das jeweils nur eine Bildschirmausgabe druckt. Wenn Sie den Pager beim Ausführen eines Befehls deaktivieren möchten, übergeben Sie --no-pager an Git:

$ git --no-pager <subcommand> <options>

Dies kann für jeden Git-Befehl ausgeführt werden.

Wenn Sie es standardmäßig deaktivieren möchten nur für diff, können Sie den Diff-Pager auf cat setzen, indem Sie Folgendes ausführen:

$ git config pager.diff false

Wenn Sie es standardmäßig deaktivieren möchten für alle Befehle, können Sie den Git-Pager auf cat setzen, indem Sie Folgendes ausführen:

$ git config --global core.pager cat
126
mipadi

Folgende core.pager value verwendet less, das auf stdout gedruckt wird, und verfügt außerdem über Pager-Funktionen (falls erforderlich), die einen Bildlauf nach oben und unten ermöglichen (im Gegensatz zu cat):

$ git config --global core.pager "less -FRSX"

Es wird sofort beendet, wenn das Diff auf den ersten Bildschirm passt (-F), gibt unformatierte Steuerzeichen aus (-R), schneidet lange Zeilen, anstatt sie umzubrechen (-S) und verwendet keine termcap init/deinit Strings (-X).

20
friederbluemle

Sie können cat auch einfach für jeden git Befehl verwenden, wenn Sie sich nicht für die Farben interessieren.

So git diff | cat für Ihren Fall.

Edit: wie in den Kommentaren erwähnt, wenn Sie sich für die Farben interessieren, verwenden Sie:

git diff --color | cat

10
Shasak