如何使 git-log 向上滚动而不是向下滚动

Chi*_*nke 6 terminal git-log less-unix

每当我git log --all --graph --oneline --decorate在终端模拟器中查看输出时,都会在终端屏幕的顶部查看第一次提交。当我用 退出git log输出视图时q, 中的几行不再可见,因为屏幕底部附加了一些新行,用于下一个命令。

不过,通常这些顶行是最有趣的,因为它们类似于最近的 git 历史记录,所以我希望它们在我输入下一个 git 命令时仍然可见。

如何使git log输出显示在屏幕底部,即在底部查看第一个提交?您必须向上滚动才能查看较旧的提交。

注意:--reverse出于两个原因,该标志不是一个选项。

  1. 每次你必须一直滚动到底部才能查看第一次提交。那应该没有必要。我想从底部开始。
  2. 它不与--graph标志结合:fatal: cannot combine --reverse with --graph

Chi*_*nke 2

这个答案似乎抓住了大多数边缘情况。没有经过彻底测试。

\n\n
[alias]\n    rlog = !"git --no-pager log --all --graph --decorate --oneline --color=always | tac | awk -f ~/switchslashes.awk | less -X +G -r"\n
Run Code Online (Sandbox Code Playgroud)\n\n

文件~/switchslashes.awk包含的位置

\n\n
{\n    match($0,/([[:space:][:cntrl:]|*\\/\\\\]+)(.*)/,a) # find the segment of the graph\n    tgt = substr($0,RSTART,RLENGTH)     # save that segment in a variable tgt\n    gsub(/\\//,RS,tgt)                   # change all /s to newlines in tgt\n    gsub(/\\\\/,"/",tgt)                  # change all \\s to /s in tgt\n    gsub(RS,"\\\\",tgt)                   # change all newlines to \\s in tgt\n    gsub(/_/,"\xc2\xaf",tgt)                   # change all _ to \xc2\xaf in tgt\n    print tgt substr($0,RSTART+RLENGTH) # print tgt plus rest of the line\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是该脚本的修改版本。它将下划线替换为上划线,并将斜杠替换为反斜杠,反之亦然。这会在文本被 反转后修复图形tac

\n\n

免责声明

\n\n

我从未开始使用它,因为它对于较大的存储库来说很慢。它需要加载所有内容,然后应用替换,这对我来说需要太多时间。

\n