커밋 간 git-diff로 * 모든 * 공백 변경 무시
나는 코드베이스를 살펴보고 공백의 이상한 점을 수정하고 일반적으로 들여 쓰기 등을 수정하고 있으며 실수로 다른 변경을하지 않았는지 확인하고 싶으므로 git diff -w
공백을 무시하면서 변경된 모든 파일의 차이점을 표시 하려고 합니다. 차이. 문제는 이것이 실제로 모든 공백 차이를 무시 하는 것이 아니라는 것입니다 . 적어도 내가 단순히 공백 차이 라고 생각하는 것입니다. 예를 들어 다음 출력에서 git diff -w
,
-"Links":
-{
-
- "Thermal":
-
-{
-
+ "Links": {
+ "Thermal": {
당신은 내가 단지
- 불필요한 빈 줄 제거,
- 값이 열리는 키의 줄 끝에 중괄호를 넣습니다.
- 문맥에 맞게 들여 쓰기
이 질문 은 처음에는 답을 제공 할 수있는 것처럼 보였지만 두 특정 커밋 간의 차이가 아닌 두 특정 파일 간의 차이점을 다룹니다 . 검색을 통해 밝혀진 다른 모든 것도 막 다른 골목이었습니다. 예를 들어, 이 질문 은 차이를 표시하는 것이 아니라 병합에 관한 것이며 , 이 질문 은 단어 수준의 차이를 표시하는 등의 문제를 다룹니다.
아마도 더 나은 답이 있을지 모르지만 지금까지 찾은 최고의 솔루션은 이것이다.
먼저 Git이 현재 사용하고있는 "공백"의 정의를 제어해야합니다. .gitconfig
프로젝트에서를 만들거나 편집하여
[core]
whitespace = -trailing-space,-indent-with-non-tab,-tab-in-indent
다음으로 사용 된 단어의 정의를 제어해야합니다. 을 사용하는 대신 다음을 git diff -w
추가하십시오 --word-diff-regex=[^[:space:]]
.
git diff -w --word-diff-regex=[^[:space:]]
여전히 컨텍스트를 볼 수 있습니다. (제 경우에는 공백 차이를 제외하고 차이가 없는지 확인하려고하기 때문에 ) 도움이되지 않습니다. -U0
Git에게 0 줄의 컨텍스트를 제공 하도록 지시 할 수 있습니다 .
git diff -w -U0 --word-diff-regex=[^[:space:]]
그러나 여전히 컨텍스트와 매우 유사한 출력을 얻을 수 있지만 모든 변경 사항을주의 깊게 수동으로 검토하여 공백 만 변경되었는지 확인하는 것보다 훨씬 낫습니다.
커밋 간 git-diff로 모든 공백 변경 무시
이 질문은 처음에는 답을 제공 할 수있는 것처럼 보였지만 두 특정 커밋 간의 차이가 아닌 두 특정 파일 간의 차이점을 다룹니다. 검색을 통해 밝혀진 다른 모든 것도 막 다른 골목이었습니다 ....
Git이 작업에 잘못된 도구이기 때문에 문제가 있다고 생각합니다. 그것은 작업을 쉽게 만들지 않으며 도구를 수용하기 위해 항복하는 것은 잘못된 접근 방식입니다. 도구는 사용자를 위해 작동해야하며 그 반대의 경우도 마찬가지 입니다.
두 번째 클론을 수행 한 다음 문제의 시작 버전을 체크 아웃합니다. 그런 다음 현재 개정판을 사용하여 정기적으로 diff를 실행하십시오 diff -bur --ignore-all-space <dir1> <dir2>
.
다음은 몇 가지 옵션입니다.diff
-i, --ignore-case
ignore case differences in file contents
-E, --ignore-tab-expansion
ignore changes due to tab expansion
-Z, --ignore-trailing-space
ignore white space at line end
-b, --ignore-space-change
ignore changes in the amount of white space
-w, --ignore-all-space
ignore all white space
-B, --ignore-blank-lines
ignore changes where lines are all blank
'developer tip' 카테고리의 다른 글
Visual Studio에 MySQL 데이터 원본이 나타나지 않음 (0) | 2020.11.25 |
---|---|
DrawerLayout 이중 서랍 (왼쪽 및 오른쪽 서랍 동시) (0) | 2020.11.25 |
Windows에서 원자 적 파일 이름 바꾸기 (덮어 쓰기 포함)가 가능합니까? (0) | 2020.11.25 |
C # : 모든 스레드가 완료 될 때까지 대기 (0) | 2020.11.25 |
나중에 열 수 있도록 Eclipse에 탭 그룹을 저장할 수 있습니까? (0) | 2020.11.25 |