Git 差异统计在管道传输时发生变化

Git diff stat changes when piped

如果我这样做:

git diff --stat master

我会有这样的东西:

 .gitignore                                           |  11 +-
 BUGS                                                 |   1 +
 Makefile                                             | 907 +++++++++++++++++++------------------------------
 README.md                                            |  55 +--

如果我将它通过管道传送到寻呼机,例如 moreless,它会改变:

 .gitignore                                         |  11 +-
 BUGS                                               |   1 +
 Makefile                                           | 907 ++++++++-------------
 README.md                                          |  55 +-

发生了什么事?

后续命令假定标准终端宽度为 80 列。

将您的虚拟终端大小调整为 80 列,您会看到管道将显然停止影响输出。

根据 Git diff 帮助:

[...] Maximum width defaults to terminal width, or 80 columns if not connected to a terminal, and can be overridden [...]