我的一位同事最近注意到普通git log
命令与以下别名之间存在差异:
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
经过一番挖掘,我们发现它可能与cygwin bash有关。
以下是我们的调查结果:
git log --graph
所有提交可见
git log --oneline
git log --oneline > test.txt
唉,所有提交都在test.txt
中可见?!?
让我们通过拆分别名来进一步调查。删除颜色代码:
git log --graph --pretty=format:'%h - %d %s (%cr) <%an>'
[...之后的一些frobnications ...]
git log --graph --pretty=format:'%h - %d %s (%cr)'
所有提交可见
git log --graph --pretty=format:'%h - %d %s <%an>'
所有提交可见
在变量的某些组合之后似乎会中断。在这种情况下(%cr) <%an>
我也在linux上尝试了相同的存储库,在那里,它按预期工作(即所有提交都显示在日志中)。
我们想知道为什么会这样。
答案 0 :(得分:1)
尝试这些以更接近原因:
$PAGER
,看看它是如何影响错误的。$PAGER
为less
,请将日志从less
( S )和/或 -R 保存到如果你有颜色,打开/关闭ANSI转义处理。$LC_ALL
,$LANG
等,尝试 LANG=C git log
等