공백 충돌없이 병합
수천 줄의 코드가 바뀌어 줄 끝에서 공백을 제거하고 탭 앞의 공백을 제거하는 커밋이있는 문제가 있습니다.
이 프로젝트에 대한 약 50 개의 풀 요청이 있으며, 커밋이 병합 될 때 충돌이 발생합니다. 미래 커밋을 병합 할 때 그중 하나가 공백으로 바뀌는 충돌을 무시하도록 git을 설정할 수있는 방법이 있습니까?
자식 자체를 수정하거나 타사 도구를 사용하는 것은 불가능하지만 후크를 사용하는 것이 좋습니다.
git merge -Xignore-all-space
또는 (보다 정확한)
git merge -Xignore-space-change
병합 중 모든 공간 관련 충돌을 무시하기에 충분해야합니다.
git diff 참조하십시오 :
--ignore-space-change
공백 양의 변경을 무시하십시오.
이것은 줄 끝의 공백을 무시하고 하나 이상의 공백 문자의 다른 모든 시퀀스를 동등한 것으로 간주합니다.
--ignore-all-space
행을 비교할 때 공백을 무시하십시오.
한 줄에 공백이 있고 다른 줄에는없는 경우에도 차이가 무시됩니다.
ks1322
의견에 좋은 조언을 추가합니다.
--no-commit
실제 커밋 전에 병합 을 병합 하고 검토하는 것이 좋습니다.
OP 칼럼 맥레이는 이 경우, 병합은 중단없이 진행하고, 풀 요청 패치에 포함 된 후행 공백은 로컬 파일에 적용됩니다, 그것을보고합니다.
그러나, OP는 상기 후미 공간을 처리하는 사전 커밋 후크를 사용한다.
( 이것 과 비슷한 것으로 가정하고 여기 에서도 참조하십시오 ).
OP의 사전 커밋 후크는 다음과 같습니다.
후행 공백을 제거하는 것 외에도 탭 앞의 1 ~ 3 개의 공백을 제거하고 (탭 너비가 4로 설정되어 있음) EOL을 추가합니다.
EOL을 추가하는 코드가 창에서 파일을 삭제하지만 복제 할 수 없다는보고가있었습니다.
참고 URL : https://stackoverflow.com/questions/9776527/merging-without-whitespace-conflicts
'Programing' 카테고리의 다른 글
“this”모듈의 소스 코드는 무엇입니까? (0) | 2020.05.27 |
---|---|
URL 매트릭스 매개 변수와 요청 매개 변수 (0) | 2020.05.27 |
이 코드는 어떻게 인도의지도를 생성합니까? (0) | 2020.05.27 |
Java 리플렉션에서 getFields와 getDeclaredFields의 차이점은 무엇입니까? (0) | 2020.05.27 |
SQL에서 범위를 어떻게 "그룹화"할 수 있습니까? (0) | 2020.05.27 |