如何使git-log向上而不是向下滚动
每当我在终端仿真器中查看git log --all --graph --oneline --decorate
输出时,都会在终端屏幕的顶部查看第一个提交。当我用q
退出git log
输出视图时,几行内容不再可见,因为在屏幕底部附加了一些新行,用于执行下一个命令。如何使git-log向上而不是向下滚动
通常情况下,这些顶部线条是最有趣的,因为它们类似于最近的git历史记录,所以我希望它们在我键入下一个git命令时仍然可见。
我怎样才能使git log
输出显示在屏幕的底部,即第一次提交是在底部查看?您将不得不向上滚动以查看较早的提交。
注意:由于两个原因,--reverse
标志不是选项。
- 每次必须滚动到底部才能查看第一个提交的 提交。这不应该是必要的。我想从底部开始。
- 它不与
--graph
标志结合:fatal: cannot combine --reverse with --graph
。
这是一个似乎赶上最边缘的情况下的答案。未经彻底测试。
[alias]
rlog = !"git --no-pager log --all --graph --decorate --oneline --color=always | tac | awk -f ~/switchslashes.awk | less -X +G -r"
其中文件~/switchslashes.awk
包含
{
match($0,/([[:space:][:cntrl:]|*\/\\]+)(.*)/,a) # find the segment of the graph
tgt = substr($0,RSTART,RLENGTH) # save that segment in a variable tgt
gsub(/\//,RS,tgt) # change all /s to newlines in tgt
gsub(/\\/,"/",tgt) # change all \s to /s in tgt
gsub(RS,"\\",tgt) # change all newlines to \s in tgt
gsub(/_/,"¯",tgt) # change all _ to ¯ in tgt
print tgt substr($0,RSTART+RLENGTH) # print tgt plus rest of the line
}
其为this script的修改版本。它用上划线替换下划线,并用反斜杠替换斜线,反之亦然。这样在文本被tac
逆转之后修复了图表。
免责声明
用这个,因为它是与大库慢我从来没有开始。它需要加载所有内容,然后应用替换,这会花费太多时间来满足我的口味。
在OS X上,tac不可用。你可以安装GNU coreutils并使用gtac代替。 –
用免责声明修改了答案。 –
首先,你可以送花儿给人传递-n
到日志打印出你感兴趣的任何数量的提交。
我怎样才能让git的日志输出显示反转
使用--reverse
标志:
--reverse
输出以相反的顺序的提交。
git log --reverse
你可以在这里阅读了解有关git的日志更多的技巧和标志:
http://www.alexkras.com/19-git-tips-for-everyday-use/
我不知道前面哪条线我感兴趣,所以我不能舔'-n'。另外,我已经更新了OP关于需要使用--graph参数的问题,这不符合 - 反向。 –
来接近预期的结果的命令是
git --no-pager log --all --graph --decorate --oneline --color=always | tac | less -r +G -X
然而,这仍然因为斜线没有正确反转,所以会稍微混淆图表。
更新
这个命令,也不在乎换用反斜杠,反之亦然斜线。
git --no-pager log --all --graph --decorate --oneline --color=always | tac | sed -e 's/[\]/aaaaaaaaaa/g' -e 's/[/]/\\/g' -e 's/aaaaaaaaaa/\//g' | less -r +G -X
相应的混帐别名是
[alias]
rlog = !"git --no-pager log --all --graph --decorate --oneline --color=always | tac | sed -e 's/[\\]/aaaaaaaaaa/g' -e 's/[/]/\\\\\\\\/g' -e 's/aaaaaaaaaa/\\\\//g' | less -r +G -X"
使用http://stackoverflow.com/a/35754356/1546844中的awk替换脚本,可以改进斜线切换以仅应用于图形部分 –
你有没有试过'git log --reverse'? – Jubobs
[我可以得到git log以相反顺序打印历史吗?](http://stackoverflow.com/questions/2798822/can-i-get-git-log-to-print-the-history-倒序) – Jubobs
@Jubobs没有重复。 Git log --reverse将从最后一次提交开始,这不是我想要的。另外,它不能和--graph结合使用。将更新的问题,包括作为一个要求 –