如何仅在必要时对git输出进行分页

时间:2016-01-14 17:33:57

标签: git

有没有办法配置git,只有当它超出终端大小(或至少是特定行数)时才将其输出管道输出到纸张?我认为这很令人讨厌,例如寻呼机中显示6行差异 - 隐藏任何先前的输出,并要求我明确按“q”退出。

3 个答案:

答案 0 :(得分:6)

在大多数系统上,less是Git使用的默认寻呼机,您可以配置较少的行为,就像您描述的那样:

git config --global core.pager "less -X -F"
  

-F或--quit-if-one-screen 如果整个文件可以显示在第一个屏幕上,则会导致自动退出。

     

-X或--no-init 禁止将termcap初始化和取消初始化字符串发送到终端。这有时是可取的   如果取消初始化字符串做了不必要的事情,比如   清除屏幕。

有关配置较少的更多选项,请参阅this answer

此外,特别是关于diff命令,您可以使用:

git --no-pager diff

答案 1 :(得分:1)

您可以通过设置PAGER变量来配置寻呼机,任何需要寻呼机的程序都会使用它。 less有一个选项-F就是这样做的。将export PAGER="less -F"添加到~/.bashrc会使此永久保留。

我个人使用less -FXRS;有关更多详细信息,请参阅手册页。

答案 2 :(得分:0)

您描述的行为是默认行为。 Git启动<form action="/search.php" method="get"> <div class="form-group"> <span class="col-md-1 col-md-offset-1 text-center"><i class="fa fa-envelope-o bigicon"></i></span> <div class="col-md-8"> <input id="form" name="form" type="text" placeholder="Search" class="form-control" > </div> <div class="col-md-12 text-center"> <?php // check if the parameter is set. if (isset($_GET['form'])) { echo '<p><a href="search.php?id='.urlencode($_GET['form']).'"><button type="submit" class="btn btn-secondary">Search</button></a><br />'; } ?> </div> </div> </form> ,如果未设置less,Git会将其设置为$LESS(请参阅FRX)。

如果您没有看到此行为,那么很可能有人(某些发行版默认执行此操作)已为您设置man git-config。您可以在shell的配置文件中取消设置,也可以使用其他答案之一。