6

git log 是否可以在提交后自动刷新,或者我可以在终端中使用另一个实用程序来查看自动刷新的所有先前提交的列表?

4

3 回答 3

8

我更喜欢以下,因为它比其他解决方案更干净:

watch git log -2

更容易打字

如果要每 5 秒刷新一次,而不是 2 秒,请使用

watch -n 5 git log -2

对于那些没有watch功能/二进制的人:

function watch()
{
    local delay=2
    local lines=$(tput lines)
    lines=$((${lines:-25} - 1))

    if [[ "$1" -eq "-n" ]]; then
        shift 
        delay=$((${1:-2}))
        shift 
    fi

    while true
    do
            clear
        "$@" | head -n $lines
        sleep $delay
    done
}
于 2011-08-23T07:29:15.603 回答
4

你的意思是这样的?

 while true; do clear; git log -2 | cat; sleep 5; done

这显示了前两个 git 日志条目,每 5 秒刷新一次。“| cat”是为了避免 git 打开寻呼机。

但是,这不会获得新的远程更改。

于 2011-08-23T07:09:07.733 回答
4

当然,我们可以使用sleep其他答案中描述的解决方案,但是它们依赖于及时更新,这并不美观,并且会导致提交和更新日志之间的延迟。

相反,我们希望看到的是在更新日志时恰好发生的异步更新。在 Linux 中,我们有inotify-tools在此处下载,它们安装起来非常小,没有先决条件)来监视文件系统事件,例如文件的创建和修改。

inotifywait -m -r -e modify -e create -e close_write -e attrib .git/ | while read ; do
  clear
  git --no-pager log -2
done

我们递归地监视存储库文件夹中发生的事件.git(Git 在提交时修改文件)。我刚刚测试了一组观察事件,似乎只更新提交和分支开关的日志就足够了。

于 2011-08-23T08:01:36.240 回答