是否可以在提交后自动刷新git log,或者我可以在终端中使用另一个utillity来查看自动刷新的所有先前提交的列表?
答案 0 :(得分:7)
我更喜欢以下内容,因为它比其他解决方案更清晰:
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
}
答案 1 :(得分:4)
当然,我们可以使用其他答案中描述的sleep
解决方案,但它们依赖于及时更新,这不是很好,并且会导致提交和日志更新之间的延迟。
相反,我们希望看到的是在更新日志时恰好发生的异步更新。在Linux中,我们有inotify-tools
(download here,它们的安装非常小,没有先决条件)来监视文件系统事件,例如创建和修改文件。
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在提交时修改文件)。我刚刚测试了一组监视事件,似乎只更新了提交和分支交换机上的日志。
答案 2 :(得分:3)
你的意思是这样的吗?
while true; do clear; git log -2 | cat; sleep 5; done
这显示了前两个git日志条目,每5秒刷新一次。 “| cat”是为了避免git打开寻呼机。
但是,这并没有获得新的远程更改。