xargs git: 사용자 입력 건너뛰기

xargs git: 사용자 입력 건너뛰기

xargsgit 명령을 재귀적으로 호출하는 함수가 있습니다 .

지금 전화를 걸면 gitr log끝까지 Enter를 누르거나 xargs다음 통화를 실행하려면 q를 눌러야 합니다.

xargs사용자 입력을 건너뛰거나 모든 것을 한 번에 출력하도록 지시할 수 있나요 less?

답변1

실행하지 않고 모든 것을 덤프하려면 git이 옵션을 사용하여 호출할 수 있습니다. 다음은--no-pagerless매뉴얼 페이지:

--호출기 없음

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
}

관련 정보