如何查看git log自动刷新

Ela*_*atz 2 bash git bash-scripting

我正在尝试创建一个脚本,该脚本应该git log每 1 秒刷新一次。这就是我所拥有的:

while :
do
clear
git log --all --decorate --oneline --graph
sleep 1
done
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为git log等待用户点击q退出 - 因此循环被卡住了。我怎样才能解决这个问题?

小智 8

您可以将其设为单行watch

watch --color -n 3 git log --all --decorate --oneline --graph --color=always
Run Code Online (Sandbox Code Playgroud)

调整-n标志以更改刷新率。


Tom*_*ter 5

根据SO 的这个答案,您可以通过--no-pagergit.

log等待的不是命令q,而是less进行分页的工具。通过告诉git您不需要寻呼机,该log命令将打印所有输出,然后立即退出。

当然,如果有多个屏幕值得,您将打印出所有内容,并且必须向上滚动才能看到最近的提交。您可以通过添加类似-22. 这将限制为 22 次提交,您当然可以选择不同的数量。

就像是:

while :
do
clear
git --no-pager log --all --decorate --oneline -22 --graph
sleep 1
done
Run Code Online (Sandbox Code Playgroud)