더 큰 차이점을 보려면 를 사용하여 git diff
페이지를 매깁니다 less
. 이는 다른 창을 열고 및 의 데이터를 검토하여 ps -aux
확인할 수 있습니다 /proc
.
그러나 less
Git에서 호출하면 적중 후 터미널 내용을 이전 상태로 복원하지 않습니다 q
(차등 내용은 터미널에 남아 있음). 하지만 내가 할 때
git diff commit1 commit2 --color | less -R
less
키를 눌러 종료하면 q
내용이 사라지고 단말기는 이전 상태로 돌아갑니다.
내가 그렇게 한다면 훨씬 더 흥미로운 것은
export PAGER=less LESS='-R'
호출 git diff
(또는 호출기를 호출하는 다른 명령)은 less
Bash 셸에서 직접 호출하는 것과 동일하게 동작합니다.
다음은 내 문제를 설명하는 짧은 스크린샷입니다. 왼쪽 창에서 명령은 다음과 같이 실행됩니다.
unset PAGER GIT_PAGER LESS
git diff HEAD^ HEAD
오른쪽 창에서 명령을 볼 수 있습니다. 최신 커밋에는 y
파일에 100줄 이상이 기록되었습니다. 종료하려면 두 창 모두에서 less
키를 사용하세요 q
.
차이점이 무엇인지 알려주고 그 이유를 설명할 수 있는 사람이 있나요?
답변1
문서:
LESS
환경 변수가 설정되지 않으면 Git이 이를 설정합니다 (FRX
환경LESS
변수가 설정된 경우 Git은 이를 전혀 변경하지 않습니다).
-X
( ) 옵션은 --no-init
종료 후 터미널을 지우지 않는 역할을 합니다 less
.