xargs
git 명령을 재귀적으로 호출하는 함수가 있습니다 .
지금 전화를 걸면 gitr log
끝까지 Enter를 누르거나 xargs
다음 통화를 실행하려면 q를 눌러야 합니다.
xargs
사용자 입력을 건너뛰거나 모든 것을 한 번에 출력하도록 지시할 수 있나요 less
?
답변1
실행하지 않고 모든 것을 덤프하려면 git
이 옵션을 사용하여 호출할 수 있습니다. 다음은--no-pager
less
매뉴얼 페이지:
--호출기 없음
git 출력을 호출기로 파이프하지 마십시오.
답변2
표준 입력이나 표준 출력 또는 둘 다를 리디렉션해 보십시오.
예를 들어:
gitr log < /dev/null | cat
답변3
메시지를 표시하는 것은 xargs가 아니며 그보다 적습니다. less는 xargs가 아니라 git에 의해 호출됩니다.
git에 대한 각 호출은 한 번에 하나의 저장소에서 작동하므로 여러 저장소에서 작업하려면 git에게 호출기를 호출하지 말라고 지시해야 합니다. 그러나 수동으로 호출기를 호출할 수도 있습니다.
다음은 git이 호출기를 호출하지 않고 대화형으로 호출할 때 모든 git 호출의 출력에 대해 호출기를 호출하도록 하는 테스트되지 않은 개념 증명 코드입니다. 귀하의 코드는 run_git
접근성 으로 들어갑니다 .
gitr () {
if [ -t 1 ]; then
run_git \
-ccolor.branch=always "$@" -ccolor.grep=always -ccolor.showbranch=always -ccolor.status=always \
| ${GIT_PAGER:-less -r}
else
run_git "$@"
fi
}