como ver a atualização automática do log git

2

Estou tentando criar um script que me permita o git log e atualizar a cada 1 segundo. Isso é o que eu tenho:

while :
do
clear
git log --all --decorate --oneline --graph
sleep 1
done

Não está funcionando porque git log aguarda que o usuário pressione q para sair e, portanto, o loop está emperrado. Como posso consertar isso?

    
por Elad Katz 06.12.2017 / 13:21

2 respostas

5

Com base em esta resposta do SO, você pode parar a necessidade de sair adicionando --no-pager imediatamente após o% código%.

Não é o comando git que está aguardando log , é a ferramenta q que está realizando a paginação. Informando less que você não deseja o pager, o comando git imprimirá todas as saídas e, em seguida, sairá imediatamente.

É claro que, se houver mais de uma tela, você terá tudo impresso e precisará rolar para cima para ver os commits mais recentes. Você pode combater isso limitando o número de confirmações a registrar adicionando algo como log . Isso limitaria a 22 commits, você poderia, é claro, escolher um número diferente.

Algo como:

while :
do
clear
git --no-pager log --all --decorate --oneline -22 --graph
sleep 1
done
    
por 06.12.2017 / 13:58
6

Você pode tornar isso uma linha com watch :

watch --color -n 3 git log --all --decorate --oneline --graph --color=always

Ajuste o sinalizador -n para alterar a taxa de atualização.

    
por 13.12.2017 / 00:17