자식 로그 자동 새로 고침을 보는 방법 고침합니다. 이것이 내가 가진

나는 저에게해야 할 스크립트를 만들려고합니다. git log 매 1 초마다 새로 고침합니다. 이것이 내가 가진 것입니다 :

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

그것은 작동하지 않기 때문에 git log 사용자가 명중하기를 기다린다. q 종료하고 루프가 멈추게됩니다. 이 문제를 어떻게 해결할 수 있습니까?



답변

기준 이 대답 SO에서, 당신은 추가함으로써 그 필요성을 멈출 수 있습니다. --no-pager 직후에 git.

그것은 log 기다리는 명령 q, 그건 less 페이지 매김을하는 도구. 말함으로써 git 호출기를 원하지 않는다고 log 명령은 모든 출력을 인쇄 한 다음 즉시 종료합니다.

물론 하나 이상의 화면이있는 경우 모든 것을 인쇄하고 가장 최근의 커밋을 보려면 위로 스크롤해야합니다. 다음과 같은 것을 추가하여 로그 할 커밋 수를 제한함으로써이 문제를 해결할 수 있습니다. -22. 22 커밋으로 제한됩니다. 물론 다른 수를 선택할 수 있습니다.

같은 것 :

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

답변

한 줄짜리로 만들 수 있습니다. watch:

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

비틀기 -n 플래그를 누르면 새로 고침 빈도가 변경됩니다.