git 显示:重定向到文件后格式发生变化
git show: formatting is changed after redirection to file
我运行git show --stat 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb
。
我得到:
commit 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb
Author: xxx <xxx@xxx.com>
Date: Thu Apr 30 13:40:54 2020 +0200
xxx
xxx.c | 1 +
我运行git show --stat 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb > git_show.txt
。
我得到:
$ cat git_show.txt
commit 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb
Author: xxx <xxx@xxx.com>
Date: Thu Apr 30 13:40:54 2020 +0200
xxx
xxx.c | 1 +
即格式(间距)不同!很意外。
问题是在 git_show.txt
中还有 .../xxx/xxx.c | 1 +
个文件名被截断的条目,这样就无法看到完整的文件名。
为什么会发生格式更改以及如何保留格式?
P.S。 git version 2.8.0
原因是当您将文本打印到标准输出时,Git 知道您的终端的列大小,并根据该值生成宽度。当您通过管道传输到文件时,Git 没有将您的终端连接到标准输出,因此它默认为 80 列。
如果您想使用不同的宽度,可以将其指定为 --stat
的参数:
$ git show --stat=132 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb > git_show.txt
# or, if your shell supports $COLUMNS:
$ git show --stat=$COLUMNS 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb > git_show.txt
您还可以提供其他参数;有关详细信息,请参阅 git-diff(1)
。请注意,这些选项在 2.8.0 中可能不可用;如果是这种情况,那么您将需要升级以获得对此功能的支持。
我运行git show --stat 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb
。
我得到:
commit 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb
Author: xxx <xxx@xxx.com>
Date: Thu Apr 30 13:40:54 2020 +0200
xxx
xxx.c | 1 +
我运行git show --stat 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb > git_show.txt
。
我得到:
$ cat git_show.txt
commit 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb
Author: xxx <xxx@xxx.com>
Date: Thu Apr 30 13:40:54 2020 +0200
xxx
xxx.c | 1 +
即格式(间距)不同!很意外。
问题是在 git_show.txt
中还有 .../xxx/xxx.c | 1 +
个文件名被截断的条目,这样就无法看到完整的文件名。
为什么会发生格式更改以及如何保留格式?
P.S。 git version 2.8.0
原因是当您将文本打印到标准输出时,Git 知道您的终端的列大小,并根据该值生成宽度。当您通过管道传输到文件时,Git 没有将您的终端连接到标准输出,因此它默认为 80 列。
如果您想使用不同的宽度,可以将其指定为 --stat
的参数:
$ git show --stat=132 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb > git_show.txt
# or, if your shell supports $COLUMNS:
$ git show --stat=$COLUMNS 2a340b71b280d60bbc29f8d8fe00b7da5760e2bb > git_show.txt
您还可以提供其他参数;有关详细信息,请参阅 git-diff(1)
。请注意,这些选项在 2.8.0 中可能不可用;如果是这种情况,那么您将需要升级以获得对此功能的支持。