codememo

Git 로그를 계속하라는 메시지가 표시되지 않도록 하는 방법은 무엇입니까?

tipmemo 2023. 8. 31. 23:54
반응형

Git 로그를 계속하라는 메시지가 표시되지 않도록 하는 방법은 무엇입니까?

함께 속한 Git 저장소 몇 개와 이 저장소 위에 루프할 수 있는 간단한 배치/배시 파일이 있습니다.저는 종종 로그 명령을 사용하여 이러한 상태를 빠르게 확인합니다.이것은 한 가지를 제외하고는 잘 작동합니다. 만약 커밋 메시지가 내 콘솔의 문자 수보다 길거나, git가 라인을 표시하면, (END)로 새 라인을 표시하고, 계속하려면 (출력이 더 많은 것을 통해 연결된다고 생각합니다) q를 눌러야 합니다.예:

> gitloop . "git log --decorate=short --pretty=oneline -n1"
18629ae238e9d5832cb3535ec88274173337a501 (HEAD, origin/master, master) short log

625fb891b9b0b8648459b07ace662ae3b7773c7f (HEAD, origin/master, origin/HEAD, master) short log

dc0838118266ba8570ea338c1faddfe8af0387bb (HEAD, origin/work, origin/master, work, master) oops loooooooooooooong log
-(END)

이것은 제가 q를 몇 번 눌러야 하기 때문에 다소 불편하지만, 저는 그냥 한 번에 하나의 엘리너를 보고 싶습니다.

이 동작을 사용하지 않도록 설정하려면 어떻게 해야 합니까(이 로그 형식을 유지하는 것이 좋음)?

Git에는 호출기를 비활성화하는 옵션이 있습니다.

git --no-pager log --decorate=short --pretty=oneline -n1

호출기가 줄을 긋고 해당 동작을 유지하려면 다음으로 연결합니다.cut...

git --no-pager log --decorate=short --pretty=oneline -n1 | cut -c 1-$COLUMNS

...또는 환경 변수 설정GIT_PAGER호출 전:

GIT_PAGER="cut -c 1-${COLUMNS-80}" git log --decorate=short --pretty=oneline -n1

특히 사용 시 호출기를 영구적으로 비활성화하는 문제에 대한 다른 해결책log하위 명령:

  • 현재 보고서에만 해당:
    git config pager.log false

  • Git 설치(즉, 컴퓨터의 모든 저장소):
    git config --global pager.log false

일부 다른 하위 명령에 대해 선택적으로 호출기를 켜거나 끌 필요가 있는 경우에도 동일하게 작동합니다.
예를 들어branch(가지를 인쇄하는) 하위 명령입니다.

git config pager.branch false


제안된 솔루션은 거의 틀림없이 보다 우아합니다.

  • 사용.git --no-pager특정 명령을 실행할 때마다.
    왜냐하면, 거의 가능성이 있기 때문에, 매번 입력하는 것을 원하지 않습니다.

  • 지정git --no-pager의 가명으로git
    잠재적 글로벌 구성을 피하거나 경우에 따라 호출기를 사용하도록 설정할 수 있습니다.

  • 다음과 같은 환경 변수에 의존합니다.PAGER또는GIT_PAGER.
    이 작업을 수행하려면 현재 터미널 세션에 설정되어 있어야 합니다.또한 새 터미널이 만들어질 때마다 자동으로 사용자 지정 값으로 설정되도록 하려면 예를 들어 셸 부트스트랩된 파일 중 하나를 변경해야 합니다.~/.bashrc큰 문제는 아닙니다.그러나 이러한 부트스트랩된 파일은 다른 애플리케이션에서도 자주 변경되며 Git에서 사용하는 것뿐만 아니라 여러 가지 다른 정보를 포함하고 있습니다.따라서 이론적으로 다음을 사용하여 깃 관련 설정을 지정하는 것이 좋습니다.git config예를 들어 그것들을 넣는 것보다.~/.bashrc.


사용하지 않도록 설정하기 위한 대체 솔루션pager모든 하위 명령에 대해 다음을 지정합니다.cat할 git: " 유리티가페사에용할경우징이틸:경우▁as할용사▁the▁utilityit▁g▁g▁use":

  • git config core.pager cat
  • git config --global core.pager cat

제 대답은 아래의 것을 다소 바꾸어 말하는 것입니다.
"호출기를 사용하는 것과 다른 점이 있습니까?
https://.com/a/6986231/6103242https ://stackoverflow.com/a/6986231/6103242

다른 관련 논의를 지적하기 위해 참조됩니다.

모든 명령에 대해 호출기 사용 안 함:

git config --global core.pager '' 

당신이 피리를 부으세요.less -F--no-pager당신에게 효과가 없습니다.

git log --decorate --oneline -5 | less -F

-F는 것을 의미합니다.less처럼행것입다처럼 입니다.--no-pager출력이 한 화면에 맞으면 호출기가 됩니다.

export PAGER=cat

나를 위해 일했습니다.

위의 답변이 맞을 수도 있지만, 저에게 가장 적합한 답변을 추가하고 싶습니다.합니다.lessgit다음 플래그를 추가합니다.

export LESS="${LESS:+$LESS }-X -F"
-X  Disables sending the termcap initialization and deinitialization strings to the terminal.
-F or --quit-if-one-screen -> no need to press `q` if output fits into the current terminal size.

언급URL : https://stackoverflow.com/questions/7736781/how-to-make-git-log-not-prompt-to-continue

반응형