IT

긴 줄에 gitdiff를 어떻게 사용해야 합니까?

itgroup 2023. 6. 27. 22:06
반응형

긴 줄에 gitdiff를 어떻게 사용해야 합니까?

파일에 대한 git-diff를 실행하고 있지만 변경 사항은 긴 줄 끝에 있습니다.

커서 키를 사용하여 오른쪽으로 이동하면 색상 코드가 손실되고 줄이 정렬되지 않아 변경 내용을 추적하기가 더 어렵습니다.

그 문제를 방지하거나 단순히 줄을 감는 방법이 있습니까?

mingw32를 통해 Git 1.5.5를 실행하고 있습니다.

에는 "" " " " " " " " 를 하십시오.-S더 적게 래핑할 수 있도록 디프를 보는 동안.

『 』의 출력 git diff사용 중인 호출기로 처리됩니다.

일반적으로 리눅스에서는less사용될 것입니다.

다른 호출기를 사용하도록 git에 지시할 수 있습니다.GIT_PAGER환경 변수입니다.를 들어, 수 신경 쓰지 , 으로 "" (" " " " " " " " " " " " " " " " 을 설정해 .GIT_PAGER호출기를 사용하여 중지할 수 있습니다.Linux 버전:

$ GIT_PAGER='' git diff

호출기가 없으면 줄이 감깁니다.

단말기가 컬러 출력을 지원하지 않는 경우 다음 중 하나를 사용하여 이 출력을 끌 수도 있습니다.--no-color인수를 지정하거나 Git 구성 파일의 색상 섹션에 항목을 입력합니다.

$ GIT_PAGER='' git diff --no-color

사용할 수도 있습니다.git config포장할 호출기를 설정합니다.

$ git config core.pager 'less -r' 

현재 프로젝트의 호출기 설정을 설정합니다.

$ git config --global core.pager 'less -r' 

모든 프로젝트에 대해 전역적으로 호출기를 설정합니다.

답변에 대한 논평에서 Josh Diehl에게 전적으로 공을 돌리면서, 그럼에도 불구하고 저는 이것이 스스로 답이 되어야 한다고 생각합니다. 그래서 그것을 추가합니다.

긴 줄에서 차이를 보는 한 가지 방법은 단어 중심의 차이를 사용하는 것입니다.이 작업은 다음을 통해 수행할 수 있습니다.

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

또는 색상화를 사용하면 다음과 같이 됩니다.

result of just git diff

다음과 같은 정보를 얻을 수 있습니다.

result of git diff --word-diff

자, 정말 긴 줄을 비교한다면, 당신은 당신이 처음에 설명했던 호출기 상황에 여전히 문제가 있을 수 있습니다. 그리고 분명히 다른 답변에서 만족스럽게 다루었습니다.그러나 이를 통해 라인에서 변경된 내용을 보다 쉽게 식별할 수 있는 새로운 도구가 제공되기를 바랍니다.

호출기로 사용하는 횟수를 줄이고 줄 바꿈을 영구적으로 설정하려면 긴 줄 접기 옵션을 사용하기만 하면 됩니다.

git config --global core.pager 'less -+S'

이렇게 하면 적게 사용하면서 입력할 필요가 없습니다.

건배.

방금 구글에서 검색했어요. GIT_PAGER='less -r'나에게 효과가 있습니다.

Mac OSX: 실행 중인 다른 사람의 '-S'를 제외한 다른 답변은 모두 제게 도움이 되지 않았습니다.워드랩을 영구적으로 만드는 데는 다음이 필요했습니다.

git config --global core.pager 'less -+$LESS -FRX'

Git 1.5.3 이후(2007년 9월)

a --no-pager옵션을 사용할 수 있습니다.

git --no-pager diff

어떻게 하면 gitdiff가 호출기를 사용하는 것을 방지할 수 있습니까?

v2.1부터는 랩이 기본값입니다.

Git v2.1 릴리스 정보

지금까지 아무도 이것을 지적하지 않았습니다.기억하기가 매우 간단하며 Git 구성에서 추가 구성을 수행할 필요가 없습니다.

git diff --color | less -R

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"를 사용하는 경우 여러 페이지(페이지 끝에 ":" 표시)가 표시되면 "-S"를 입력하고 Enter 키를 누를 수 있습니다.(S는 대문자여야 합니다).긴 줄 접기를 전환합니다.

gitdiff의 출력을 다음과 같이 파이프로 연결하기만 하면 됩니다.

git diff | more

완벽한 해결책은 아니지만,gitk그리고.git-gui이 정보를 표시하고 스크롤 막대를 사용할 수 있습니다.

현재/기본 구성을 나열합니다.

  $ 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/how-should-i-use-git-diff-for-long-lines

반응형