git diff를 stdout에 쓰는 방법은 무엇입니까?


93

기본적으로 git diff모든 +-줄을 stdout에 인쇄 하지만 (ssh를 통해 연결하는) (비안) 기계 git diff가 있으며 편집기로 연결됩니다 (어떤 것인지 알 수 없음) q. 계속 하려면 눌러야 합니다.

나는 검사기 자식 구성을 가지고 있으며 다음과 같습니다.

$ git config --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=XXX
branch.master.remote=origin
branch.master.merge=refs/heads/master
$ git config --global --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory

내가 놓친 곳이 있습니까? 내 컴퓨터에 뭔가 빠졌기 때문에 알 수없는 도구가 대체 도구일까요? 도움을 주시면 감사하겠습니다. 감사.


답변:


167

기본적으로 Git은 diff 출력 (일반적으로 한 화면 이상일 수있는 모든 출력)을 한 번에 한 화면의 출력 만 인쇄하는 유틸리티 인 시스템의 호출기로 보냅니다 . 명령을 실행할 때 호출기를 비활성화하려면 --no-pagerGit에 전달하십시오.

$ git --no-pager <subcommand> <options>

이것은 모든 Git 명령에 대해 실행할 수 있습니다.

diff에 대해서만 기본적으로 비활성화 하려면 다음 cat을 실행 하여 diff 호출기를 로 설정할 수 있습니다 .

$ git config pager.diff false

모든 명령에 대해 기본적으로 비활성화 하려면 다음 cat을 실행 하여 Git 호출기를 로 설정할 수 있습니다 .

$ git config --global core.pager cat

호출기에 대해 몰랐습니다. git config --global core.pager cat그것을했다!. :) 주셔서 감사합니다
nacho4d

4
@aaronbauman : git( 하위 명령이 아닌) 전달 했습니까 ?
mipadi

"git --no-pager diff"는 "git diff --no-pager"와 다릅니다. 해명 해 주셔서 감사합니다
aaronbauman 2015 년

1
같은 일이 작동 git branch, 예를 들면git config pager.branch false
dinjas

30

다음 core.pager값은 lessstdout으로 인쇄하고 페이저 기능 (필요한 경우)을 사용하여 위아래로 스크롤 할 수 있도록합니다 (와 달리 cat) :

$ git config --global core.pager "less -FRSX"

diff가 첫 화면 ( -F) 에 맞으면 즉시 종료되고 원시 제어 문자 ( -R)를 출력하고 줄 바꿈 ( -S)이 아닌 긴 줄을 자르고 termcap init / deinit 문자열 ( -X)을 사용하지 않습니다 .


1
감사합니다 .. 인터넷을 통해이 옵션을 찾고있었습니다. :)
obai

이것은 내가 원하는 것입니다
user3595632

20

색상이 마음에 들지 않으면 cat모든 git명령에 간단히 사용할 수도 있습니다 .

그래서 git diff | cat당신의 경우.

편집 : 색상 사용에 관심이 있다면 주석에서 지적한대로 :

git diff --color | cat


9
색상에 관심이 있다면 다음을 수행하십시오 git diff --color | cat(:
xjcl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.