如何打开git status的输出到pager?

75

我希望将git status的输出返回到像less一样的环境中。尽管对于git diff已经能够实现此功能,但对于git status还无法做到。我已经尝试将以下内容添加到~/.gitconfig中,但没有成功:

[core]
  pager = less

我错过了什么?谢谢。


1
我不知道是否有一种方法可以做到这一点,但是 git status | less 太难吗?只有当您有很多修改的文件时才真正需要它。 - Eve Freeman
3
@WesFreeman 这有点烦人。当Git被管道传输到less时,它不会保留颜色,并且git status没有--color=always选项。如果有这样的选项,那么一个人就必须键入git status --color=always | less -R- 不是很简洁,对吧? - brandizzi
1
现在我们有了git status -vv,它还可以非常有用,因为它将git-diff的输出添加到末尾。 - Xiong Chiamiov
@EveFreeman说:“只有在你有很多文件的时候才真正需要它”,而我正在处理的项目中一直都需要。这个项目中构建工件数量达到了数百个,.gitignore文件很大,但并没有覆盖所有工件。 - lmat - Reinstate Monica
2个回答

114
您可以使用pager.<cmd>设置来开启或关闭特定命令的分页功能,对于这个例子来说是pager.status:

如果该值为布尔值,则在写入 tty 时打开或关闭特定 Git 子命令的输出分页。否则,将使用 pager.<cmd> 的值指定的分页器为该子命令打开分页。

运行以下命令以启用 status 子命令的分页:

git config --global pager.status true

或者手动将以下内容添加到你的~/.gitconfig文件末尾:

[pager]
    status = true
如果您只想在特定调用中打开或关闭分页,可以使用选项-p / --paginate-P / --no-pager将其应用于git命令本身,例如:
git -p status

4
谢谢!看起来它似乎也能保留着色效果! - dsz
为了让一个答案回答所有方面,最好在这里包括 --paginate/--no-pager 的提示。 - doak
哦,我刚才忽略了它,因为它被“埋藏”在文档引用中。我的错。 - doak

12

仅限一次:

git -p status

或者--paginate。带有着色效果,在所有地方都适用,包括错误/帮助信息。

git -p status -h比使用git status -h |& less获取stderr要好得多。

虽然长的帮助信息会弄乱我的终端:git -p status --help


6
如果你想在没有分页器的情况下运行命令,也可以使用git -P,它等同于git --no-pager - Alex Jasmin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接