InfoGrab DocsInfoGrab Docs

병합 충돌

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

머지 충돌은 머지 리퀘스트의 두 브랜치, 즉 소스 브랜치와 대상 브랜치가 같은 코드 줄을 서로 다르게 변경했을 때 발생합니다. 대부분의 경우 GitLab 이 변경 사항을 함께 머지하지만, 충돌이 발생하면 어떤 변경 사항을 남길지 직접 결정해야 합니다. 충돌이 있는 머지 리퀘스트를 해결하려면 다음 중 하나를 수행해야 합니다. 머지 커밋을 만듭니다. 리베이스로 충돌을 해결합니다. GitLab은 대상 브랜치에 머지하지 않고 소스 브랜치에 머지 커밋을 만들어 충돌을 해결합니다. 그런 다음 머지 커밋을 검토하고 테스트하여 의도하지 않은 변경 사항이 없는지, 빌드가 깨지지 않는지 확인할 수 있습니다. 충돌 블록 이해 # Git 이 사용자의 판단이 필요한 충돌을 감지하면 충돌 마커로 충돌 블록의 시작과 끝을 표시합니다. <<<<<<< HEAD 는 충돌 블록의 시작을 나타냅니다. 사용자의 변경 사항이 표시됩니다. ======= 는 사용자의 변경 사항이 끝나는 지점을 나타냅니다. 대상 브랜치의 최신 변경 사항이 표시됩니다. >>>>>>> 는 충돌의 끝을 나타냅니다. 충돌을 해결하려면 다음을 삭제합니다. 남기지 않을 충돌 줄 버전 충돌 마커 세 개, 즉 시작 마커, 끝 마커, 두 버전 사이의 ======= 줄 UI에서 해결할 수 있는 충돌 # 충돌이 있는 파일이 다음 조건을 충족하면 GitLab UI에서 머지 충돌을 해결할 수 있습니다. 바이너리가 아닌 텍스트 파일입니다. 충돌 마커를 포함한 크기가 200KB 미만입니다. UTF-8 호환 인코딩을 사용합니다. 충돌 마커를 포함하고 있지 않습니다. 두 브랜치에서 동일한 경로에 존재합니다. 파일이 이 조건을 충족하지 않으면 충돌을 직접 해결해야 합니다. 충돌 해결 방법 # GitLab은 해결할 수 있는 충돌 을 UI에 표시하며, 다음 방법으로도 충돌을 해결할 수 있습니다. GitLab Duo: 자동으로 처음부터 끝까지 충돌을 해결할 때 적합합니다. 인터랙티브 모드: 어떤 버전의 줄을 남길지 선택하기만 하면 되는 충돌에 적합합니다. 인라인 편집기: 변경 사항을 섞기 위해 직접 편집해야 하는 복잡한 충돌에 적합합니다. 명령줄: 복잡한 충돌을 완전히 제어할 수 있습니다. 자세한 내용은 명령줄에서 충돌 해결 을 참고합니다. GitLab Duo를 사용하여 충돌 해결 # 히스토리 GitLab 19.0에서 mr_ai_resolve_conflicts 라는 GitLab 19.3에서 일반 공개 됨. GitLab 19.4에서 기능 플래그 mr_ai_resolve_conflicts 가 제거 됨. GitLab Duo는 머지 충돌을 자율적으로 분석하고 충돌 파일을 편집한 다음, 커밋을 만들어 소스 브랜치에 푸시할 수 있습니다. 사전 요구 사항: Developer, Maintainer 또는 Owner 권한이 있어야 합니다. 소스 브랜치에 대한 푸시 권한이 있어야 합니다. GitLab Duo Agent Platform 필수 요건 을 충족해야 합니다. 충돌이 UI에서 해결 가능