我有两个不同的服务器,每个服务器都运行Ubuntu。在它们两个上,我设置了env LESS=-FerX
,这确保了git log输出显示得很好。此外,打开换行。
在其中一台服务器上,如果我运行git log
并且有动态包装的行,则最上面的行会消失。
例如:
log --pretty='format:%C(3)[%h] %Cgreen%an%Creset%n %cd %s %Cred%d%Creset' --graph
服务器1上的输出:
* [1234457] John Doe
| Date fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz
fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo
bar baz
* [4567890] Richard Miles
| Date fooooo bar baz
:
服务器2上的输出:
fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo
bar baz
* [4567890] Richard Miles
| Date fooooo bar baz
* [0815123] Mary Major
| Date fooooo bar baz fooooo bar baz fooooo bar baz
:
知道如何解决这个问题吗?
答案 0 :(得分:6)
再一次,我在询问后几分钟就找到了自己问题的答案。
原来问题是-r
的{{1}}参数。它应该是less
而不是。
从联系手册:
-R
对于我不知道的一些共鸣,小写-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in "raw" form.
Unlike -r, the screen appearance is maintained correctly in most cases.
可以正常工作。
答案 1 :(得分:4)
也许你知道这一点,你可能已经尝试过,但是因为你没有提到它:
man git config
包含(强调我的):
core.pager
git将用于分页输出的命令。可以使用GIT_PAGER环境变量覆盖。请注意,如果在运行寻呼机时未设置LESS,则git会将LESS环境变量设置为FRSX。可以通过将LESS变量设置为其他值来更改这些设置。或者,可以通过设置core.pager选项在项目或全局基础上覆盖这些设置。设置core.pager对上面的LESS环境变量行为没有影响,所以如果你想以这种方式覆盖git的默认设置,你需要明确。 例如,要以向后兼容的方式禁用S选项,请将core.pager设置为less - + $ LESS -FRX 。这将通过git传递给shell,它会将最终命令转换为LESS = FRSX less - + FRSX -FRX。