git log
例如,我喜欢启用分页器,但不是git diff
因为我有自己的可视化差异工具,而且我讨厌在差异完成后在命令行上按“q”。有办法吗?
答案1
您可以设置pager.diff
配置变量来禁用特定子命令的分页器。请pager.<cmd>
参阅git 配置(1)。
git config --global pager.diff false
--global
如果您只想对当前存储库进行此配置更改,请忽略。
答案2
只需将其添加| cat
到调用的末尾即可git
。这将导致git
将整个内容转储为标准输出(因为不再具有交互性)。
例如
git diff --stat | cat
遗憾的是,作为副作用,你会丢失输出中的颜色,但你可以--color
在之前添加来强制启用它| cat
,结果如下:
git diff --stat --color | cat
答案3
这不是一个很好的解决方案,但是你可以有一个 git 包装器,它确定你正在运行的命令并通过 cat 管道传输输出以消除终端检测。
#!/bin/sh
case "$1" in)
diff) git "$@" | cat;;
*) exec git "$@";;
esac
当然,我的示例程序完全是无意义的。您需要跳过选项,而不是在程序中硬编码“$1”。