InfoGrab Docs

병합 충돌

병합 충돌을 이해하고 Git 프로젝트에서 해결하는 방법을 알아봅니다.

병합 충돌은 머지 리퀘스트의 두 브랜치, 즉 소스와 대상에서 동일한 코드 줄에 다른 변경 사항이 있을 때 발생합니다. 대부분의 경우 GitLab은 변경 사항을 함께 병합할 수 있지만, 충돌이 발생하면 어떤 변경 사항을 유지할지 결정해야 합니다. 충돌이 있는 머지 리퀘스트를 해결하려면 다음 중 하나를 수행해야 합니다: 병합 커밋 생성. 리베이스를 통해 충돌 해결. GitLab은 소스 브랜치에서 병합 커밋을 만들어 대상 브랜치에 병합하지 않고 충돌을 해결합니다. 그런 다음 병합 커밋을 검토하고 테스트하여 의도하지 않은 변경 사항이 없고 빌드를 중단시키지 않는지 확인할 수 있습니다. 충돌 블록 이해 # Git이 당신의 결정이 필요한 충돌을 감지하면 충돌 마커로 충돌 블록의 시작과 끝을 표시합니다: <<<<<<< HEAD 는 충돌 블록의 시작을 표시합니다. 당신의 변경 사항이 표시됩니다. ======= 는 당신의 변경 사항의 끝을 표시합니다. 대상 브랜치의 최신 변경 사항이 표시됩니다. >>>>>>> 는 충돌의 끝을 표시합니다. 충돌을 해결하려면 다음을 삭제합니다: 유지하지 않으려는 충돌 줄 버전. 세 가지 충돌 마커: 시작, 끝, 두 버전 사이의 ======= 줄. UI에서 해결할 수 있는 충돌 # 충돌 파일이 다음 조건을 충족하는 경우 GitLab UI에서 병합 충돌을 해결할 수 있습니다: 바이너리가 아닌 텍스트 파일. 충돌 마커가 추가된 상태에서 200KB 미만. UTF-8 호환 인코딩 사용. 충돌 마커 없음. 두 브랜치에서 동일한 경로에 있음. 파일이 이러한 조건을 충족하지 않으면 충돌을 수동으로 해결해야 합니다. 충돌 해결 방법 # GitLab은 사용자 인터페이스에서 해결 가능한 충돌 을 표시하며, 다음 방법을 사용하여 충돌을 해결할 수도 있습니다: 인터랙티브 모드: 보관할 줄의 버전만 선택하면 되는 충돌에 가장 적합합니다. 인라인 편집기: 변경 사항을 혼합하기 위해 수동으로 편집해야 하는 복잡한 충돌에 적합합니다. 명령줄: 복잡한 충돌에 대한 완전한 제어를 제공합니다. 자세한 내용은 명령줄에서 충돌 해결 을 참조하세요. 인터랙티브 모드 # 인터랙티브 모드는 선택한 변경 사항으로 대상 브랜치를 소스 브랜치에 병합합니다. 인터랙티브 모드로 병합 충돌을 해결하려면: 상단 바에서 검색 또는 이동 을 선택하고 프로젝트를 찾습니다. 왼쪽 사이드바에서 코드 > 머지 리퀘스트 를 선택하고 머지 리퀘스트를 찾습니다. 개요 를 선택하고 머지 리퀘스트 보고서 섹션으로 스크롤합니다. 병합 충돌 메시지를 찾고 충돌 해결 을 선택합니다. GitLab은 병합 충돌이 있는 파일 목록을 표시합니다. 충돌하는 줄이 강조 표시됩니다. 각 충돌에 대해 내 것 사용 또는 상대방 것 사용 을 선택하여 보관할 충돌 줄의 버전을 표시합니다. 이 결정을 "충돌 해결"이라고 합니다. 모든 충돌을 해결했으면 커밋 메시지 를 입력합니다. 소스 브랜치에 커밋 을 선택합니다. 인라인 편집기 # 일부 병합 충돌은 더 복잡하며