如何使git diff写入标准输出?
默认情况下, git diff
所有的+-
行输出到stdout,但是我有一个(devian)机器(通过ssh连接),其中git diff
将我引导到一个编辑器(我不知道这是哪个),我需要按继续。
我checker gitconfiguration,它看起来像:
$ 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
有没有我失踪的地方? 也许未知的工具是一个后备或东西,因为我的机器是缺less的东西? 任何帮助表示赞赏。 谢谢。
默认情况下,Git将它的差异输出(通常是任何可能比屏幕更多的输出)发送到系统的寻呼机 ,该寻呼机是一次只能打印一个屏幕输出的实用程序。 如果要在运行命令时禁用寻呼机,请将--no-pager
传递给Git:
$ git --no-pager <subcommand> <options>
这可以运行任何Git命令。
如果您希望仅在diff中禁用它,则可以通过运行以下命令将diff pager设置为cat
:
$ git config pager.diff false
如果你想在默认情况下禁用所有的命令 ,你可以通过运行以下命令来设置Git分页器为cat
:
$ git config --global core.pager cat
下面的core.pager
值使用less
,打印到标准输出,并具有传呼function(如果需要),使滚动上下(不像cat
):
$ git config --global core.pager "less -FRSX"
它会立即退出,如果差异适合在第一个屏幕( -F
),输出原始控制字符( -R
),排长队而不是包装( -S
),并且不使用termcap init / deinitstring( -X
)。
这在Ubuntu 15.04上进行了testing。
如果你不关心颜色,你也可以简单地使用cat
来执行任何git
命令。
所以git diff | cat
git diff | cat
你的情况。