Wenn ich git branch
(von bash oder csh) laufe, leitet es die Ausgabe automatisch weiter less
. Bei nur wenigen Zweigen im Repository ist dies jedoch überflüssig und ärgerlich, da die Liste der Zweige verschwindet, wenn ich weniger beende.
Beim Überprüfen der ~/.gitconfig
Datei und der lokalen .git/config
Dateien wird nichts über einen Pager oder etwas anderes gefunden, das dies verursachen könnte. Ansonsten war nichts, was ich in der Websuche gefunden habe, hilfreich oder vielversprechend.
Warum passiert das und was (wenn überhaupt) kann ich tun, um less
bei Bedarf einen Lauf durchzuführen (z. B. bei einem Lauf, bei dem git log
es viel Geschichte gibt), aber nicht anders (wie bei einem git branch
mit nur 2 oder 3 Zweigen)?
export LESS=-X
die.profile
. Dies verhindert, dass der Bildschirm "aufgeräumt" wird. Ich hasse es, dass die Standardeinstellung den Bildschirm löscht, weil ich oft Sachen ausschneiden und einfügen oder als Referenz verwenden muss.Antworten:
Sie können Folgendes einstellen:
Dies wird sicherstellen, dass
less
wirdF
)R
)Lange Schlangen hacken (S
)X
)Bearbeiten: Die
S
Option wurde basierend auf dem Kommentar von Peter A. Scheider entferntquelle
--global
wenn Sie möchten, dass es nur für das aktuelle Repository gilt.LESS
auf setzen-FR
, können Sie auch X und S nach Belieben hinzufügen.export PAGER='less -FRSX'
und git würde es berücksichtigen (ohne eine bestimmte git-Konfiguration). Übrigens-S
ist gefährlich, weil es die Ausgabe stillschweigend verwirft.Hier gibt es einige gute Antworten für
less
das Verhalten von Tuning , aber da meine grauen Bartfinger es gewohnt sind, zu tippen,|more
wenn ich es will, und ich immer noch mehr mit Quecksilber als mit Schwachsinn in Einklang bin, bin ich scharf aufquelle
git-config
gibt an, dass der Wert voncore.pager
von der Shell interpretiert werden soll. Wenn Sie es auf setzenno
, versucht es, den Befehl auszuführenno
, der höchstwahrscheinlich nicht vorhanden ist, und greift dann auf die einfache Ausgabe des Inhalts zurück. Sie werden weiterhin eine Fehlermeldung am Kopf sehen. Was Sie wahrscheinlich tun möchten, ist escat
stattdessen zu setzen.cat
ist nutzlos und ich vertraue Linux-Betreuern nicht besonders an, dass sie nicht ändern, was cat tut (vgl. Dasls
zitierte Dateidebakel ). Vielleicht sollte ich stattdessen "nicht immer" verwenden. Es ist weniger wahrscheinlich, dass ein solches Programm existiert.core.pager
auf den leeren String (git config core.pager ''
) odercat
wird nicht alles überhaupt laufen. Du kannst es selbst herausfinden, wenn du mir nicht glaubst ;-) Es gibt überhaupt keinen Grund, es auf einen Dummy-Befehl wie zu setzenno
.cat
werden Sie sagen, dass git einen Sonderfall für die Zeichenfolge in dem Pager - Code hat - das heißt , diecat
effektiv ein Synonym für „null“ ist? Ich würde erwarten, dass es ausgeführt wirdcat
.