小编Jon*_*urn的帖子

Git for Windows Bash shell 'less' 命令显示垃圾,同时显示来自 Git 日志调用的格式化文本

我已经为 Windows 安装了 Git,并且总体上对它提供的 Bash shell 中的功能集感到满意。我在使用别名时遇到了问题,该别名在我尝试过的其他任何地方都可以正常工作。

别名:

alias gl='git log --graph --format='\''%Cred%h%Creset %s    %C(yellow)%an | %C(cyan)%ad%Creset %C(green bold)%d%Creset'\''' | less
Run Code Online (Sandbox Code Playgroud)

在 MacOS bash 终端 Cygwin 中,当然在 Linux shell 中,别名会产生很好的结果。

在 Cygwin 下执行的别名

在 GFW 的 Bash shell 中,输出非常混乱:

Git For Windows Bash 下的别名

如果我直接运行命令,没有别名,它可以正常工作。所以我知道并不是 GFW 的 Bash shell 不知道如何解析我写的命令。

我的问题:如何让这个别名在 Git For Windows 下正常工作?

我愿意使用别名的替代方法。如果 linux 函数或真正的 Git 别名会更好地工作,我对这些替代方案感到满意。不过,弄清楚为什么会发生这种情况会很好。

更新/发现 问题似乎根本不在于解释别名。如果我将管道移至“少”,则输出显示正确。因此,看起来 Git Bash Shell 中实现的“less”命令对转义序列的解释(从字面上看,我猜)与其他实现不同。因此,再多的函数调用都无法解决核心问题。

git alias git-bash mingw-w64 less-unix

3
推荐指数
1
解决办法
1414
查看次数

标签 统计

alias ×1

git ×1

git-bash ×1

less-unix ×1

mingw-w64 ×1