git diff-긴 줄을 처리합니까?
파일 에서 git-diff 를 실행 하고 있지만 변경 사항이 길다.
커서 키를 사용하여 오른쪽으로 이동하면 색상 코딩이 손실되고 줄이 정렬되지 않아 변경 사항을 추적하기가 더 어려워집니다.
그 문제를 방지하거나 단순히 줄 바꿈을 만드는 방법이 있습니까?
(mingw32를 통해 git 1.5.5 실행)
출력 결과 표시 git diff
는 사용중인 호출기에 의해 처리됩니다.
일반적으로 Linux에서는 less
사용됩니다.
GIT_PAGER
환경 변수 를 설정하여 git에게 다른 호출기를 사용하도록 지시 할 수 있습니다 . 페이징에 대해 신경 쓰지 않으면 (예를 들어, 터미널을 사용하여 뒤로 스크롤 할 수 있음) GIT_PAGER
호출기를 사용하여 중지하도록 명시 적 으로 비워 두도록 시도 할 수 있습니다 . 리눅스에서 :
$ GIT_PAGER='' git diff
호출기가 없으면 줄이 줄 바꿈됩니다.
터미널이 컬러 출력을 지원하지 않는 경우 --no-color
인수를 사용하거나 git config 파일의 컬러 섹션에 항목을 넣을 수도 있습니다.
$ GIT_PAGER='' git diff --no-color
또는 기본 페이저로 less를 사용하는 경우 -S
줄 바꿈을 다시 사용하려면 diff를 보면서 입력 하십시오.
git config
랩퍼를 설정하여 랩핑 할 수도 있습니다 .
$ git config core.pager 'less -r'
현재 프로젝트의 호출기 설정을 설정합니다.
$ git config --global core.pager 'less -r'
모든 프로젝트에 대해 호출기를 전체적으로 설정합니다
전체 신용와 조쉬 셰어 의 코멘트 에 이 대답 , 나는 그럼에도 불구하고 그래서 추가,이 자체에게 대답되어야한다 같은 느낌 :
긴 줄의 차이점을 처리하는 한 가지 방법은 단어 중심의 diff를 사용하는 것입니다. 이것은 다음과 같이 할 수 있습니다 :
git diff --word-diff
이 경우 상당히 다른 diff 출력을 얻을 수 있는데, 이는 라인 내에서 변경된 내용을 구체적으로 보여줍니다.
예를 들어 다음과 같은 것을 얻는 대신 :
diff --git a/test-file.txt b/test-file.txt
index 19e6adf..eb6bb81 100644
--- a/test-file.txt
+++ b/test-file.txt
@@ -1 +1 @@
-this is a short line
+this is a slightly longer line
다음과 같은 것을 얻을 수 있습니다.
diff --git a/test-file.txt b/test-file.txt
index 19e6adf..eb6bb81 100644
--- a/test-file.txt
+++ b/test-file.txt
@@ -1 +1 @@
this is a [-short-]{+slightly longer+} line
또는 채색 대신 다음과 같이하십시오.
당신은 이것을 얻을 수 있습니다 :
이제 실제로 긴 줄을 비교하는 경우 원래 설명했던 호출기 상황에 문제가있을 수 있으며 다른 답변에서는 만족스럽게 해결되었습니다. 다행히도 이것이 회선상의 변경 사항을보다 쉽게 식별 할 수있는 새로운 도구를 제공하기를 바랍니다.
페이저로 적게 사용하고 줄 바꿈을 영구적으로 만들려면 긴 줄 바꿈 옵션을 활성화하면됩니다.
git config --global core.pager 'less -+S'
이렇게하면 덜 사용하는 동안 입력하지 않아도됩니다.
건배
이걸 봤어 GIT_PAGER='less -r'
나를 위해 일한다
맥 OSX : 덜 실행되는 동안 someone45의 '-S'를 제외한 다른 대답은 저에게 효과적이지 않았습니다. 자동 줄 바꿈을 지속하려면 다음이 필요했습니다.
git config --global core.pager 'less -+$LESS -FRX'
힘내 1.5.3 이후 ( 2007 년 9 월 )
--no-pager
옵션을 사용할 수있다.
git --no-pager diff
git diff가 pager를 사용하지 못하게하려면 어떻게합니까?
v2.1부터 wrap이 기본값입니다.
8 년 후 https://superuser.com/questions/777617/line-wrapping-less-in-os-x-specifically-for-use-with-git-diff 에서 훌륭한 답변을 찾았습니다 .
git config core.pager `fold -w 80 | less`
이제 git diff를 폴드로 먼저 파이프 한 다음 줄입니다. 줄 바꿈, 페이지 높이가 적을 때 구문 강조 표시를 유지하십시오.
git diff의 출력을 더 많이 파이프 할 수 있습니다.
git diff | more
아니 완벽한 솔루션,하지만 gitk
하고 git-gui
모두이 정보를 표시하고, 스크롤을 할 수 있습니다.
지금까지 아무도 이것을 지적하지 않았습니다. 기억하기 쉽고 git config에서 추가 구성을 수행 할 필요가 없습니다.
git diff --color | less -R
"git diff"를 사용 중이고 여러 페이지를 표시하는 경우 (페이지 끝에 ":"참조)이 경우 "-S"를 입력하고 Enter를 누를 수 있습니다 (S는 대문자 여야 함). 접는 긴 줄을 토글합니다.
현재 / 기본 구성을 나열하십시오.
$ git config --global core.pager
less -FXRS -x2
그런 다음 -S를 업데이트하고 생략하십시오.
$ git config --global core.pager 'less -FXR -x2'
-S : 화면 너비보다 긴 선이 접히지 않고 잘립니다.
문제가 생길 때 종종 DiffMerge에 의지합니다. 인라인 차이 강조 기능이있는 뛰어난 차이 도구. 또한 최신 버전에서는 수평 모드를 갖는 모드를 추가했습니다.
그래도 git을 사용하도록 구성 할 수 없었습니다. 따라서 두 버전의 파일을 먼저 얻으려면 혼란을 겪어야합니다.
참고 URL : https://stackoverflow.com/questions/136178/git-diff-handling-long-lines
'Programing' 카테고리의 다른 글
내 코드에서 모든 console.log 문을 빠르고 편리하게 비활성화하는 방법은 무엇입니까? (0) | 2020.04.18 |
---|---|
Rails 4에서 lib 파일 자동 로딩 (0) | 2020.04.18 |
Android 대화 상자 Fragment vs Dialog (0) | 2020.04.17 |
왜리스트에 사전과 같은 안전한 "get"메소드가 없는가? (0) | 2020.04.17 |
Ruby에서의 배열 슬라이싱 : 비논리적 행동에 대한 설명 (Rubykoans.com에서 가져옴) (0) | 2020.04.17 |