git - 如何让 git diff 写入标准输出?

标签 git terminal

默认情况下 git diff 将所有 +- 行打印到标准输出但是我有一台(devian)机器(我通过 ssh 连接)其中 git diff 将我带到一个编辑器(我不知道是哪个编辑器),我需要按 q 继续。

我检查了 git 配置,它看起来像:

$ 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

有什么我想念的地方吗?也许未知工具是后备工具或其他东西,因为我的机器缺少某些东西?任何帮助表示赞赏。谢谢。

最佳答案

默认情况下,Git 将其 diff 输出(通常是任何超过一屏的输出)发送到系统的 pager,这是一个一次只打印一屏输出的实用程序.如果您想在运行命令时禁用寻呼机,请将 --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

关于git - 如何让 git diff 写入标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17077973/

相关文章:

git - 为什么我必须在 Git 中推送我刚从 origin 中提取的更改?

linux - 如何转储二进制文件的一部分

ios - 从真实 iOS 设备获取剪贴板

c++ - 在 Ubuntu 中通过终端运行 C++ 时遇到问题

bash - 制作一个将句子转换为标题的脚本?

java - PackProtocolException : invalid advertisement when using the jgitflow-maven-plugin withing a jenkins job

git - 在 Git Rebase 期间,使用 --continue 时冲突解决方案在什么时候提交

git - git标签的taggerdate和creatordate有什么区别

javascript - EOF 错误 javascript_include_tag Rails 4

ios - 如何将 .wav 文件转换为 .caf 文件以便在 iOS 中使用