다음을 통해 공유


Visual Studio에서 병합 충돌 해결

한 분기를 다른 분기로 병합하면 한 분기의 커밋에서 파일 변경 내용이 다른 분기의 변경 내용과 충돌할 수 있습니다. Git은 리포지토리의 기록을 사용하여 병합된 파일의 모양을 확인하여 이러한 변경 내용을 해결하려고 시도합니다. 변경 내용을 병합하는 방법이 명확하지 않으면 Git에서 병합을 중지하고 충돌하는 파일을 알려줍니다.

병합 충돌 방지

Git은 커밋 간에 파일 내용이 크게 변경되지 않는 한 대부분의 상황에서 파일 변경 내용을 자동으로 병합하는 데 적합합니다. 주 분기보다 분기가 많이 뒤쳐져 있는 경우, 끌어오기 요청을 열기 전에 분기를 리베이스하는 것을 고려하십시오. 리베이스된 브랜치는 충돌 없이 메인 브랜치에 병합됩니다.

병합 충돌 해결

  • 동일한 분기의 다른 사용자와 공동 작업하는 경우 변경 내용을 푸시할 때 병합 충돌이 표시될 수 있습니다.

    푸시 후 병합 충돌의 스크린샷

  • Visual Studio는 작업 중인 로컬 분기가 원격 추적 분기 뒤에 있는지 감지한 다음 선택할 수 있는 옵션을 제공합니다.

    로컬 분기가 원격 분기 뒤에 있을 때 사용할 수 있는 옵션의 스크린샷

    메모

    원격 리포지토리에서 강제 푸시 지원하는 경우 Git>설정사용하여 사용하도록 설정할 수 있습니다.

    이 예제에서는 당기기를 선택한 다음 푸시를 실행하여 원격 저장소에 도입된 변경 사항을 포함합니다. 변경 내용을 끌어오거나 두 분기를 병합하려고 할 때 병합 충돌이 있는 경우 Visual Studio는 Git 변경 내용 창, Git 리포지토리 창 및 충돌이 있는 파일에 대해 알 수 있습니다.

    병합 충돌 알림의 스크린샷

  • Git 변경 내용 창에는 병합되지 않은 변경아래에 충돌이 있는 파일 목록이 표시됩니다. 충돌 해결을 시작하려면 파일을 두 번 클릭합니다. 또는 편집기에서 충돌이 있는 파일이 열려 있는 경우 병합 편집기 열기을 선택할 수 있습니다.

    병합 충돌 상태의 Git 변경 내용 창 스크린샷

  • 병합 편집기에서 다음 방법 중 하나로 충돌을 해결합니다(번호가 매겨진 스크린샷에 표시된 대로).

    1. 충돌 항목을 한 줄씩 이동하고 확인란을 선택하여 오른쪽 또는 왼쪽을 유지하는 중에서 선택합니다.

      -또는-

    2. 들어오는 모든 변경 내용을 수락하려면 들어오는 단추(또는 F10키)를 선택하거나, 충돌하는 모든 변경 내용의 현재 버전을 유지하려면 현재 단추(또는 F11 키)를 누릅니다. 양쪽 프레임의 맨 위에 있는 확인란 중 하나를 선택하여 동일한 작업을 수행할 수 있습니다.

      -또는-

    3. 결과 창에서 코드를 수동으로 편집합니다.

    visual Studio 2022에서 병합 충돌을 해결하는 방법을 보여 주는 스크린샷

    병합 편집기에서 기본 레이아웃이 마음에 들지 않으면 기어 드롭다운 메뉴를 사용하여 자유롭게 변경할 수 있습니다.

    병합 편집기 레이아웃 옵션의 스크린샷

    예를 들어 다음 스크린샷은 세로 보기의 모양을 보여줍니다.

    병합 편집기 사용자 인터페이스의 세로 보기 스크린샷

  • 병합 충돌 해결을 마쳤으면 병합 수락을 선택합니다. 충돌하는 모든 파일에 대해 이 프로세스를 반복합니다.

    Visual Studio 2022에서 병합 수락 작업의 스크린샷

  • Git 변경 창을 사용하여 병합 커밋을 만들고 충돌을 해결합니다.

    Git 변경 내용 창을 사용하여 병합 커밋을 만드는 방법의 스크린샷

    메모

    파일에 대한 모든 변경 사항을 유지하려면 병합 편집기를 열지 않고도 병합되지 않은 변경 내용 섹션에서 파일을 마우스 오른쪽 버튼으로 클릭한 다음 현재 상태 유지 (로컬)를 선택할 수 있습니다.

    현재 상태로 유지 메뉴 옵션의 스크린샷

사용 가능한 접근성 옵션에 대한 자세한 내용은 Visual Studio 페이지의 접근성 팁과 요령의 Git 바로 가기 키 섹션을 참조하세요.

diff 도구 구성

BeyondCompare 또는 KDiff3와 같은 타사 diff 도구를 사용하도록 .gitconfig 파일 설정하면 Visual Studio에서 이를 준수합니다. Visual Studio에서 일반적으로 diff를 표시할 때마다 원하는 도구에서 별도의 창이 열립니다. 예를 들어 이 Stack Overflow 질문을 참조하세요.