공백 충돌 없이 병합
저는 문제가 있습니다. 약 천 줄의 코드를 변경하는 큰 커밋이 줄의 끝에서 공백을 제거하고 탭 앞의 공백을 제거하는 것입니다.
또한 이 프로젝트에는 약 50개의 끌어오기 요청이 있으며, 제 커밋이 병합되면 모든 요청이 충돌하게 됩니다.향후 커밋을 병합할 때 하나가 공백 변경인 충돌을 무시하도록 깃을 설정할 수 있는 방법이 있습니까?
Git 자체를 수정하거나 타사 도구를 사용하는 것은 불가능하지만 후크를 사용하는 것은 괜찮습니다.
git merge -Xignore-all-space
또는 (더 정확하게)
git merge -Xignore-space-change
병합하는 동안 모든 공간 관련 충돌을 무시하기에 충분합니다.
Git diff 참조:
--ignore-space-change
공백 크기의 변경 사항을 무시합니다.
이렇게 하면 줄 끝의 공백이 무시되고 하나 이상의 공백 문자의 다른 모든 시퀀스가 동일한 것으로 간주됩니다.
--ignore-all-space
선을 비교할 때 공백은 무시합니다.
이렇게 하면 한 줄에는 공백이 있고 다른 줄에는 공백이 없는 경우에도 차이가 무시됩니다.
ks1322
의견에 좋은 조언을 추가합니다.
실제 커밋하기 전에 병합하고 병합을 검토할 가치가 있습니다.
OP Callum Macrae는 이 경우 병합이 중단되지 않고 진행되며 풀 요청 패치에 포함된 후행 공간이 로컬 파일에 적용된다고 보고합니다.
그러나 OP는 해당 후행 공간을 처리하는 사전 커밋 후크를 사용합니다.
(여기도 참조된, 이것과 약간 비슷할 것 같습니다.)
OP의 사전 커밋 후크는 다음과 같이 참조됩니다.
후행 공백을 제거할 뿐만 아니라 탭 앞에 1~3개의 공백을 제거하고(탭 너비를 4로 설정) EOL을 추가합니다.
EOL을 추가하는 코드가 창에서 파일을 삭제한다는 보고를 받았지만 복제할 수 없었습니다.
병합할 때 공백 문제가 많이 발생하면 이를 중단하고 다시 수행하면 됩니다. 이번에는 -Xignore-all-space 또는 -Xignore-space-change를 사용합니다.첫 번째 옵션은 선을 비교할 때 공백을 완전히 무시하고, 두 번째 옵션은 하나 이상의 공백 문자 시퀀스를 동등하게 처리합니다.
나는 관련된 충돌을 병합하기 위해 meld를 사용하는 것을 좋아하고 아래에 다양한 필터 옵션을 설정하는 옵션이 있습니다.Meld>Preferences>TextFilters
.
언급URL : https://stackoverflow.com/questions/9776527/merging-without-whitespace-conflicts
'programing' 카테고리의 다른 글
Spring-Boot Jersey: Jersey가 정적 콘텐츠를 제공하도록 허용 (0) | 2023.06.25 |
---|---|
설치 폴더에 대한 MariaDB를 쿼리하시겠습니까? (0) | 2023.06.25 |
네임스페이스 선언과 모듈 선언의 차이점은 무엇입니까? (0) | 2023.06.25 |
SELECT FOR XML 쿼리에서 반환된 열 이름을 선택하는 방법은 무엇입니까? (0) | 2023.06.20 |
Firebase가 현재 사용자를 제거합니다. (0) | 2023.06.20 |