git忽略传呼机设置吗?

时间:2019-04-03 16:10:13

标签: git

我正在尝试以这样的方式在git中设置寻呼机设置,以便在退出通过调用less创建的git diff会话时清除屏幕。 less -X的功能。但是,我尝试的任何方法都无法达到我想要的效果。

我在core.pager=less -FRS文件中进行了.gitconfig设置,并且调用git config --list就是这样。但是,传呼机的行为好像仍然设置了-X标志,即使调用git init来重新读取.gitconfig文件也没有效果。

这可能是什么原因?我的git版本是2.21.0.windows.1。

编辑:这似乎只是-X标志行为的问题。相应地会考虑其他设置,例如行斩/折叠-F和制表符大小-x4

2 个答案:

答案 0 :(得分:2)

Git总是导出LESS环境变量的某些设置。 (即使您将core.pager设置为cat也是如此!)方式这样做很简单:

  • 如果设置了$LESS,它将毫不费力地传递给它。 (即使将其设置为空字符串也是如此。)
  • 否则,它将导出LESS=FRX

然后它运行core.pager$GIT_PAGER或其余设置选择的任何寻呼机。

由于less本身遵循$LESS的值,因此您获得了-X的行为。如您所愿,如果您不想要它,则可以自己设置$LESS(以便Git不受干扰地传递它),例如,将core.pager设置为less +X,以便命令行+X会覆盖环境-X。后者是less的特殊功能,而不是Git的功能:命令行可以覆盖所有环境设置。

答案 1 :(得分:0)

好吧。将export LESS="-x4 $LESS"添加到我的.bashrc似乎可以解决问题。似乎$LESS标志也应用在core.pager中的标志之上。

我仍然不知道为什么会起作用。

我的环境变量:

$ echo LESS=\"$LESS\" PAGER=\"$PAGER\" GIT_PAGER=\"$GIT_PAGER\"
LESS="-x4 " PAGER="" GIT_PAGER=""