git 저장소에 변경 사항이 있는지 확인하고 싶습니다.저장소에 변경 사항이 있는지 확인하는 가장 빠른 방법은 무엇입니까?
나는이 조건
if command git status --porcelain 2> /dev/null | grep -q .; then
X
else
Y
fi
를 사용하고 있지만, 너무 느리다.
더 빠른 방법이 있습니까? 이 작업을 수행하려면 git
명령을 사용해야합니까, 아니면 해당 명령을 완전히 사용하지 않는 초고속 방법이 있습니까?
것은 당신이 알고 싶은 경우는 자식 상태'여부 --porcelain 2>는/dev/null' 출력 무언가 :'경우이 명령 자식 상태 --porcelain 2 >/dev/null | 읽기 -n1; 그런 다음 "Repo has changes"메시지를 표시합니다. fi'. 우리가 서브 쉘과 외부 명령을 없애고 있기 때문에 현재 테스트보다 더 빠를 것입니다. –
@gniourf_gniourf 왜 '꼬리'에서 '읽음'으로 전환 했습니까? – theonlygusti
'tail'은 외부 명령이고'read'는 내장 명령입니다. 또한'-n1 읽기 '를 사용하여 우리는 오직 하나의 문자 만 읽었을뿐 전체 스트림은 읽지 않습니다. 'grep -q. '에서도 같은 결과를 얻을 수 있지만 grep은 외부 명령이므로'read'보다 느려집니다. –