모든 git 명령에서 공백 변경 사항을 무시합니다.

모든 git 명령에서 공백 변경 사항을 무시합니다.

나는 줄 끝을 변경할 때 git이 경고하도록 하는 방법이나 전체 파일을 엉망으로 만드는 것을 방지하기 위해 다양한 다른 기술을 사용하는 방법을 설명하는 많은 웹사이트를 찾았습니다. 지금은 너무 늦었다고 가정합니다. 트리는 이미 파일 줄 끝을 전환하는 커밋을 만들었으므로 git diff이전 파일을 뺀 다음 동일한 내용을 가진 새 파일을 추가하는 것을 보여줍니다.

저는 이러한 옵션을 무시하라고 지시하는 git 구성 옵션이나 명령줄 플래그를 찾고 있습니다. diff두 줄이 공백만 다를 경우 동일한 척합니다. 파일 차이에 의존하는 모든 것을 처리하려면 이 구성 옵션/플래그가 필요합니다. diff심지어 blame/ merge이상적으로 도 후행 공백, 특히 줄 끝을 완전히 무시 rebase하고 싶습니다 . git어떻게 해야 하나요?

답변1

diff의 경우 그렇습니다 git diff --ignore-space-at-eol. 이 정도면 충분합니다. diff 및 Blame의 경우 -w: 을 사용하여 git diff -w모든 공백 변경 사항을 무시할 수 있습니다 git blame -w.

git apply및 의 경우 git rebase설명서에 가 언급되어 있습니다 --ignore-whitespace.

병합을 위해서는 외부 병합 도구를 사용해야 할 것 같습니다. favorite-mergetool즐겨찾는 곳에 이 래퍼 스크립트(테스트되지 않음)를 사용할 수 있습니다.병합 도구;달리기 git -c mergetool.nocr.cmd=/path/to/wrapper/script merge. 병합 결과는 Unix 형식이 됩니다. 다른 형식을 선호하는 경우 모든 것을 다른 형식으로 변환하거나 $MERGED병합 후에 변환하십시오.

#!/bin/sh
set -e
TEMP=$(mktemp)
tr -d '\013' <"$BASE" >"$TEMP"
mv -f "$TEMP" "$BASE"
TEMP=$(mktemp)
tr -d '\013' <"$LOCAL" >"$TEMP"
mv -f "$TEMP" "$LOCAL"
TEMP=$(mktemp)
tr -d '\013' <"$REMOTE" >"$TEMP"
mv -f "$TEMP" "$REMOTE"
favorite-mergetool "$@"

혼합된 줄 끝으로 인한 문제를 최소화하려면 다음을 확인하십시오.텍스트 파일은 다음과 같이 선언됩니다..

당신은 또한 볼 수 있습니다git-merge가 줄 끝 차이를 무시할 수 있나요?스택 오버플로에.

관련 정보