특정 명령에 대해서만 git pager를 비활성화하는 방법은 무엇입니까? git diff자체 시각적 diff 도구가 있기 때문에

git log예를 들어 페이저를 활성화하는 것이 좋지만 git diff자체 시각적 diff 도구가 있기 때문에 아닙니다 . diff가 끝나면 명령 줄에서 ‘q’를 누르는 것을 싫어합니다. 이것을 할 수있는 방법이 있습니까?



답변

pager.diff특정 부속 명령에 대해 호출기를 사용하지 않도록 구성 변수를 설정할 수 있습니다 . 보기 pager.<cmd>자식 – 설정 (1) .

git config --global pager.diff false

--global현재 저장소에 대해서만이 구성을 변경하려는 경우 제외 하십시오.


답변

훌륭한 해결책은 아니지만 git wrapper를 사용하면 실행중인 명령을 결정하고 cat을 통해 출력을 파이프하여 터미널 감지를 제거 할 수 있습니다.

#!/bin/sh
case "$1" in)
  diff) git "$@" | cat;;
  *) exec git "$@";;
esac

물론 내 예제 프로그램은 전적으로 브레인 데드입니다. 프로그램에서 하드 코딩 “$ 1″대신 옵션을 건너 뛰어야합니다.


답변