programing

'git diff'가 호출기를 사용하지 않도록 하려면 어떻게 해야 합니까?

muds 2023. 4. 16. 15:58
반응형

'git diff'가 호출기를 사용하지 않도록 하려면 어떻게 해야 합니까?

「」에 ?git diff로 " "를합니다.less폴트 호하다

  • git diff | cat는 모든 표시를 합니다.
  • git config --global core.pager cat를 "disconfig.disconfig"로 합니다.cat
  • export GIT_PAGER=cat

하지만 나는 명령행 스위치를 선호한다.

--no-pagerGit ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」 " " " "-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 " " " option to " " option to " )less1번그러나, 그 후, 화면이 리셋 되어 컨텐츠가 표시되지 않게 됩니다.

-X옵션을 지정하면 해당 동작이 사라집니다.따라서 콘텐츠 양에 따라 조건부 페이징을 활성화하려면 다음을 사용합니다.

git config --global --replace-all core.pager "less -F -X"

사용하다

git config --global core.pager cat

모든 저장소의 모든 명령에 대한 호출기를 제거합니다.

로 하려면 , Git 서브 커맨드를 합니다.pager.<cmd>「」이 아닌 core.pagerGit 저장소별로 설정을 변경할 수 있습니다( 생략).--global를 참조해 주세요.

것은, 을 참조하십시오.man git-configpager.<cmd>세한것 、 을을해해요요 。

글로벌 설정의 특정 출력에 대해서, 다음과 같이 호출기를 디세이블 또는이네이블로 할 수도 있습니다.

git config --global pager.diff false

또는 core.pager 옵션을 설정하려면 빈 문자열을 입력합니다.

git config --global core.pager ''

때 더 것 요.cat당신이 말하듯이.

이 에서는 기본 .lessFRSX를 참조해 주세요.

이 질문의 경우 (git 1.8+)

git config --global --replace-all core.pager 'less -+F -+X'

를 들어 Dirk Bester코멘트에서 다음과 같이 제안합니다.

export LESS="$LESS -FRXK" 

그래서 나는 퇴색할 때 색채가 다르게 된다.less.

Wilson F는 코멘트질문에서 다음과 같이 언급합니다.

가로 스크롤을 덜 지원하므로 줄이 잘렸을 때 사용자가 텍스트를 왼쪽으로 스크롤하여 무엇이 잘렸는지 확인할 수 있도록 화면 종료를 덜 비활성화합니다.


이러한 변경은 "Always use the pager for" (코멘트 참조)에서 설명한 바와 같이 git 1.8.x에서 이미 볼 수 있었습니다.그러나 이 문서는 방금 수정되었습니다(git 1.8.5 또는 1.9, 2013년 4분기).

Git 명령에서 사용하는 텍스트 뷰어(예: 'less').
이 값은 셸에 의해 해석되는 것을 의미합니다.

우선 순서는 다음과 같습니다.

  • $GIT_PAGER " " ", ",
  • core.pager 「」, 「」,
  • $PAGER,
  • 그 후 컴파일 시 기본값(보통 'less')이 선택됩니다.

?LESS했습니다.Git git git git git git git git git git git git git git 。FRSX
( ( ( )LESS【기트】

대한 Git 기본 설정을 선택적으로 덮어쓰려면 예를 들어 을 설정할 수 있습니다.
Git에 , 최종 커맨드는 「Git」의 「Git」의 「Git」의 「Git」의 「Git」의 「Git」의 「Git」로 됩니다.LESS=FRSX less -+S은 명령어를 하여 을 합니다.S긴 줄을 잘라내는 옵션이지만 명령줄이 긴 줄을 접으려면 기본값으로 재설정합니다.


새로운 문서의 문구에 대해서는, 「commit 97d01f2a」를 참조해 주세요.

: 개서: " "core.pager(서류)

에서는요.core.pager ★★★★★★★★★★★★★★★★★」GIT_PAGER전반적인 우선 순위도 제시하지 않고요.(1)의 설명서에서 더 나은 설명을 인용합니다.

시스템 전체, 글로벌 및 저장소별 구성 파일을 허용하는 메커니즘의 사용은 이 특정 변수에 국한되지 않습니다.삭제하면 단락이 명확해집니다.

되어 있는지 .LESSGit의 디폴트값으로 설정되어 있습니다.또, 선택적인 커스터마이즈 방법을 나타냅니다.


주의: commit b327583(Matthieu Moy, 2014년 4월, git 2.0.x/2.1, Q3 2014)은 기본적으로 S를 삭제합니다.

호출기: 기본적으로 $LESS에서 'S'를 삭제합니다.

Git은 Git을 했습니다.$LESS로로 합니다.-FRSX$LESS이치노
FRXGit)은 실제로 .F ★★★★★★★★★★★★★★★★★」X Git 파이프가 수.RGit 파이프에 컬러 출력이 있기 때문입니다).
S반면 flag(chop long line)는 Git과 관련이 없으며 사용자의 선호도에 따라 달라집니다.Git은 사용자가 의 기본값을 변경할지 결정해서는 안 됩니다.

「」입니다.S플래그는 다음과 같은 패치가 있기 때문에 호출기 내의 신뢰할 수 없는 코드를 확인하는 사용자에게 해를 줍니다.

-old code;
+new good code; [... lots of tabs ...] malicious code;

는 다음과 같이 표시됩니다.

-old code;
+new good code;

를 $LESS로 할 수 .-FRSX으로 또는 를 'core.default로 설정합니다.less -S

메뉴얼에는, 다음과 같은 내용이 기재되어 있습니다.

.S명령행은 커맨드라인에 적용되므로 긴 행을 잘라내는 작업이 줄어듭니다.
" " " 를 설정합니다.core.pager로로 합니다.less -+F는, 을 로 합니다.F 지정된 옵션을 하여 "비활성화)"를 선택합니다.quit if one screen 」의 less.
명령어에 대해 으로 몇 할 수 있습니다.를 들어, 「」의 설정입니다.pager.blame로로 합니다.less -S는, 회선 로 합니다.git blame.

Linux의 Git 버전 2.1.4에서는 이 방법이 유효했습니다.

git config --global --replace-all core.pager cat

로 인해 Git은 Git을 사용할 수 있게 되었습니다.catlesscat diff화면에 표시할 수 있습니다.

배관 시 비활성화된 색상에 대해:

--color색칠이 비활성화되지 않도록 합니다.

git diff --color | less -R

또는 강제 온으로 설정합니다(예: .gitconfig).

[color]
        ui = on

git diff | less -R

비컬러 도구의 경우 다음을 사용합니다.

git diff --no-color | some-primitive-tool

내보내기LESS=-R .는 "에서 합니다.

git diff | less

호출기가 있는 자체 호출기를 사용하여 에일리어스를 diff에 추가할 수 있습니다.다음과 같은 에일리어스:

[alias]
  dc = diff
  dsc = diff --staged
[pager]
  dc = cat
  dsc = cat

그러면 색상이 켜진 상태로 유지되며 'git dc'에서 호출할 때 호출기로 'cat'이 사용됩니다.

또한 하지 말아야 할 :

  • --no-pager신의의가가가가가Git ( 1 . 8 . 5 . 2 , Apple Git - 48 ) 。
  • !sh ★★★★★★★★★★★★★★★★★」!git이렇게 하면 위의 환경 오류를 우회할 수 있지만 작업 디렉토리를 최상위 Git 디렉토리로 리셋하므로 이미 저장소의 하위 디렉토리에 있는 경우 로컬 파일에 대한 참조는 작동하지 않습니다.

출력이 그리 길지 않은 것을 알고 있을 때는, 때때로 페이징을 무효로 하고 싶습니다.Git 에일리어스를 사용한 깔끔한 트릭을 발견했습니다.

git config --global --add alias.n '!git --no-pager'

'다보다'에 '에'를 .[alias]:~/.config 섹션:

n = !git --no-pager

, 접두사 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, .nGit git 、 Git git 、 Git git 。

git n diff # Show the diff without pager
git n log -n 3 # Show the last three commits without pager
git n show v1.1 # Show information about a tag

에 이 혹이 ..gitconfig다프쇼

[pager]
    diff = false
    show = false

man git에 나와있는 것처럼, 당신은 그것을 사용할 수 있습니다.--no-pager어떤 명령도 할 수 있습니다.

사용처:

git --no-pager diff
git --no-pager log --oneline --graph --decorate --all -n 10

그런 다음 에일리어스를 사용하여 긴 명령어를 사용하지 않도록 합니다.

oh-my-zsh에서~/.oh-my-zsh/lib/misc.zsh: 다음행에 코멘트:

env_default 'LESS' '-R'

기본적으로는 git는 호출기로 사용하는 횟수가 적습니다.보통 첫 페이지를 인쇄하고 내용을 스크롤할 수 있기 때문에 더 선호합니다.

또한 콘텐츠는 종료 후에도 콘솔에 남아 있습니다.이것은 보통 편리합니다.예를 들어, 검색 후에 컨텐츠에 대해 무언가를 하고 싶은 경우가 많기 때문입니다(예를 들어 커밋자에게 e-메일로 송신해, 마지막 커밋에서 버그가 발생했다고 하는 등).

그 후, 컨텐츠를 파이프 하려면 , 스크롤 해 모든 것을 인쇄하는 것이 불편합니다.좋은 점은 파이프라인과 결합할 수 있고 파이프라인은 모든 것을 통과한다는 것입니다.

# Find the commit abcdef123 in the full commit history and read author and commit message
git log |grep -C 5 'abcdef123'

기본적으로 더 필요한 것은 컨텐츠가 콘솔에 남아 있는 것을 원하지 않는 경우입니다.대신 더 많이 사용하려면 다음과 같이 하십시오.

git config --global core.pager 'more'

Windows 의 경우는, 다음과 같습니다.

git config --global core.pager ""

에 있는 모든 에 대한 .git이 포함되어 있습니다git branch.

아래 지침을 따르십시오.

  1. 냥냥 just just just just라고 치면 돼요.vi ~/.gitconfig를 참조해 주세요.
  2. ★★★★LESS="-F -X $LESS"linedisplaces를 합니다.
  3. 를 누릅니다.:wq입력해 주세요.
  4. 단말기를 재기동합니다.

제가 쓴 대본은 이렇게 썼어요.

PAGER=cat git diff ...
git -P diff

★★★--no-pager.

고양이와 함께 색을 유지하다

git diff --color=always | cat

세트가 호출기를 하는 경우 를 할 수 .-c설정 파라미터를 1개의 명령어에만 전달하는 옵션입니다.

예를 들어, 기본 git 호출기로 델타가 설정되어 있지만,lessdiff를 사용하고 git alias를 합니다.less★★★★★★ 。

[alias]
    lessdiff = -c core.pager=less diff

BEST 는 BEST 페이지 입니다.less -R -F -X

# Global - all projects (if has no custom local pager)
git config --global core.pager '/usr/bin/less -R -F -X'

# Local - Only on project
git config core.pager '/usr/bin/less -R -F -X'

아직 이 답을 보지 못한 것이 놀랍지만, 간단히 말해:

PAGER= git diff ...

A: "A: MacOS"를 사용하고 있습니다.zsh고고고고고고 고고고고고고
B:한 바와 같이 않은 환경의 이.여기서 B: 른른른른른mentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentmentment appendix appendix appendix appendix appendix appendix appendix if if if if if if if if if if if 。$GIT_PAGER설정될 수 있습니다.

언급URL : https://stackoverflow.com/questions/2183900/how-do-i-prevent-git-diff-from-using-a-pager

반응형