기본적으로 호출기 git diff
를 사용 하는 명령 줄 스위치 와 다른 명령을 사용하는 다른 명령이 less
있습니까?
나는 그것을 고양이에게 파이프 할 수는 있지만 모든 구문 강조 표시를 제거한다는 것을 알고 있습니다.
나는 글로벌 .gitconfig의 호출기를 cat GITPAGER=cat
(또는 이와 비슷한 것)으로 설정할 수 있다는 것을 알고있다 . 그러나 나는 때때로 (diff의 크기에 따라) 호출기를 갖기를 원합니다.
그러나 명령 행 스위치가 있으면 선호합니다. 매뉴얼 페이지를 통해 하나를 찾을 수 없습니다.
답변
--no-pager
Git에게 호출기를 사용하지 말라고 지시합니다. 옵션 -F
을 전달하면 less
출력이 단일 화면에 맞는 경우 페이징하지 않도록 지시합니다.
용법:
git --no-pager diff
주석의 다른 옵션은 다음과 같습니다.
# Set an evaporating environment variable to use 'cat' for your pager
GIT_PAGER=cat git diff
# Tells 'less' not to paginate if less than a page
export LESS="-F -X $LESS"
# ...then Git as usual
git diff
답변
이전 답변에서 언급했듯이 내용이 한 화면 미만인 경우 -F
옵션을 전달하면 옵션 less
이 종료됩니다. 그러나 이렇게하면 화면이 재설정되고 내용이 표시되지 않습니다.
-X
옵션은 그 행동을 멀리한다. 따라서 콘텐츠 양에 따라 조건부 페이징을 사용하려면 다음을 사용하십시오.
git config --global --replace-all core.pager "less -F -X"
답변
사용하다
git config --global core.pager cat
모든 리포지토리의 모든 명령에 대한 호출기를 제거합니다.
pager.<cmd>
대신 설정 을 사용하여 단일 Git 하위 명령에 대한 페이징을 비활성화 core.pager
할 수 있으며 Git 리포지토리마다 설정을 변경할 수 있습니다 (생략 --global
).
자세한 내용을 man git-config
보고 검색 pager.<cmd>
하십시오.
답변
설명서의 최근 변경 사항에 대한 기본 옵션을 제거하는 다른 방법 less
( “기본 옵션”은 FRSX
)이 언급되어 있습니다.
이 질문에 대해서는 다음과 같습니다 (git 1.8 이상)
git config --global --replace-all core.pager 'less -+F -+X'
예를 들어 Dirk Bester 는 다음 과 같이 의견을 제안 합니다 .
export LESS="$LESS -FRXK"
Ctrl-C에서 종료 와 컬러 diff를 얻을 수 있도록
less
.
윌슨 F 는 논평 과 그의 질문 에서 다음 과 같이 언급 했다.
가로 스크롤을 덜 지원하므로 줄이 잘릴 때 한 번에 한 화면 종료가 비활성화되어 사용자가 텍스트를 왼쪽으로 스크롤하여 잘린 부분을 볼 수 있습니다.
이러한 수정 사항은 git 1.8.x에 이미 표시되어 있습니다. ” 항상 호출기를 사용하십시오git diff
“(설명 참조). 그러나 설명서는 방금 수정 되었습니다 (git 1.8.5 또는 1.9, Q4 2013 ).
Git 명령에 사용되는 텍스트 뷰어 (예 : ‘less’)
이 값은 쉘에 의해 해석됩니다.선호 순서는 다음과 같습니다.
$GIT_PAGER
환경 변수- 그런 다음
core.pager
구성- 다음
$PAGER
,- 그리고 컴파일 타임에 선택된 기본값 (보통 ‘less’).
때
LESS
환경 변수를 설정하고, 그것을 힘내를 설정FRSX
(만약LESS
환경 변수 설정, 힘내 전혀 변경하지 않음).에 대한 Git의 기본 설정을 선택적으로 무시 하려면 예를 들어로
LESS
설정할 수 있습니다core.pager
less -+S
.
이것은 Git에 의해 쉘로 전달되며 최종 명령은로 변환됩니다LESS=FRSX less -+S
. 환경은 명령에S
긴 줄을 자르 도록 옵션 을 설정하도록 지시 하지만 명령 줄은 긴 줄을 접도록 기본값으로 재설정합니다.
새로운 문서 문구 뒤에있는 커밋 97d01f2a 를 참조하십시오 .
구성 : core.pager
문서 재 작성
텍스트는 언급
core.pager
과GIT_PAGER
우선 순위의 전체적인 그림을 제공하지 않고.git var
(1) 문서 에서 더 나은 설명을 차용하십시오 .시스템 전체, 전역 및 저장소 별 구성 파일을 허용하는 메커니즘의 사용은이 특정 변수로 제한되지 않습니다. 단락을 명확히하기 위해 그것을 제거하십시오.
환경 변수
LESS
가 Git의 기본값으로 설정되는 방법과 선택적으로 사용자 정의하는 방법을 설명하는 부분을 다시 작성하십시오 .
참고 : 커밋 b327583 ( 2014 년 4 월 Matthieu Moymoy
, git 2.0.x / 2.1, Q3 2014)은 기본적으로 S를 제거합니다.
호출기 : 기본적으로 $ LESS에서 ‘S’제거
기본적으로, 힘내 설정하는 데 사용
$LESS
에-FRSX
경우$LESS
사용자가 설정되지 않았습니다. 플래그는 실제로 힘내에 대한 이해 ( 그리고 때로는 이하로 출력 망할 놈의 파이프가 짧고, 때문에 망할 놈의 파이프 출력을 색깔 때문에).
반면에 플래그 (긴 줄 자르기)는 Git과 관련이 없으며 사용자 선호도의 문제입니다. 힘내 사용자가 기본값 을 변경하도록 결정해서는 안됩니다 .FRX
F
X
R
S
LESS
보다 구체적으로,이
S
플래그는 다음과 같은 패치로 인해 호출기 내에서 신뢰할 수없는 코드를 검토하는 사용자에게 해를줍니다.-old code; +new good code; [... lots of tabs ...] malicious code;
다음과 동일하게 나타납니다.
-old code; +new good code;
이전 동작을 선호하는 사용자는 여전히 $ LESS 환경 변수를
-FRSX
명시 적으로 설정하거나 core.pager를 ‘less -S
‘로 설정할 수 있습니다.
설명서는 다음과 같습니다.
환경은
S
옵션을 설정하지 않지만 명령 행은 긴 행을 자르도록 지시합니다.
마찬가지로, 설정core.pager
을less -+F
비활성화합니다F
옵션은 “비활성화 명령 줄에서 환경에 의해 지정quit if one screen
의”동작을less
.
하나는 특정 명령에 대한 몇 가지 플래그를 특별히을 활성화 할 수 있습니다 : 예를 들어, 설정pager.blame
하려면less -S
에만 라인 절단 할 수 있습니다git blame
.
답변
전역 구성에서 특정 출력에 대해 호출기를 비활성화 / 활성화 할 수 있습니다.
git config --global pager.diff false
또는 core.pager 옵션을 설정하려면 빈 문자열을 제공하십시오.
git config --global core.pager ''
이것은 cat
당신이 말하는대로 설정하는 것보다 내 의견으로는 더 낫습니다 .
답변
파이핑시 비활성화 된 색상 관련 :
--color
채색이 비활성화되지 않도록하는 데 사용하십시오 .
git diff --color | less -R
또는 강제로 구성하십시오 (예 : .gitconfig).
[color]
ui = on
git diff | less -R
비색 도구의 경우 다음을 사용하십시오.
git diff --no-color | some-primitive-tool
환경 변수 LESS=-R
(예 : .bashrc)를 내 보내면 기본적으로 “less”로 색상 지원이 켜집니다.
git diff | less
답변
이것은 Linux에서 Git 버전 2.1.4와 함께 작동했습니다.
git config --global --replace-all core.pager cat
이것은 cat
대신 Git을 사용하게 합니다 less
. 페이징없이 화면에 cat
출력을 덤프합니다 diff
.