Visual Studio에서 병합 충돌 해결
한 분기를 다른 분기에 병합하면 하나의 분기에 있는 커밋의 파일 변경 내용이 다른 분기에 있는 변경 내용과 충돌할 수 있습니다. Git은 리포지토리의 기록을 사용하여 병합된 파일이 실제로 어떠해야 하는지 확인함으로써 이러한 변경 내용의 해결을 시도합니다. 변경 내용을 병합해야 하는 병합을 명확하게 알 수 없는 경우 Git은 병합을 중단하고 어느 파일이 충돌하는지 알려 줍니다.
병합 충돌 방지
Git은 커밋 간에 파일 내용이 크게 변경되지 않은 경우 대부분의 상황에서 파일 변경 내용을 자동으로 알아서 병합합니다. 작업 중인 분기가 기본 분기보다 훨씬 이전이라면 끌어오기 요청을 열기 전에 분기를 다시 지정하는 것이 좋습니다. 다시 지정된 분기는 충돌 없이 기본 분기에 병합됩니다.
병합 충돌 해결
동일한 분기에서 다른 사용자와 함께 작업하는 경우 변경 내용을 푸시할 때 병합 충돌이 발생할 수도 있습니다.
Visual Studio가 작업 중인 로컬 분기가 원격 추적 분기 뒤에 있는지 확인한 다음, 옵션을 제공합니다.
참고
원격 리포지토리에서 강제 푸시를 지원하는 경우 Git>설정을 사용하여 사용하도록 설정할 수 있습니다.
이 예제에서 원격 리포지토리에 적용된 변경 내용을 포함하도록 풀한 다음, 푸시를 선택합니다. 변경 내용을 풀할 때나 두 분기의 병합을 시도할 때 병합 충돌이 발생하는 경우 Visual Studio가 Git 변경 내용 창, Git 리포지토리 창 및 충돌이 있는 파일에서 이 사실을 알려 줍니다.
Git 변경 내용 창의 병합되지 않은 변경 내용 아래에 충돌이 있는 파일 목록이 표시됩니다. 충돌 해결을 시작하려면 파일을 두 번 클릭합니다. 또는 편집기에서 충돌이 있는 파일이 열려 있는 경우 병합 편집기 열기를 선택할 수 있습니다.
병합 편집기에서 다음 방법 중 하나를 사용하여(번호가 매겨진 스크린샷에 표시된 대로) 충돌 해결을 시작합니다.
충돌을 한 줄씩 확인하면서 확인란을 선택하여 오른쪽과 왼쪽 중에 유지할 항목을 선택합니다.
- 또는 -
수신 적용 단추를 선택하여 (혹은 F10 키를 눌러) 들어오는 모든 변경 내용을 승인하거나 현재 내용을 적용 버튼을 눌러 (혹은 F11 키를 눌러) 충돌하는 모든 변경 내용의 현재 버전을 유지합니다. 양쪽 프레임의 맨 위에 있는 검사 상자 중 하나를 선택하여 동일한 작업을 수행할 수 있습니다.
- 또는 -
결과 창에서 수동으로 코드를 편집합니다.
병합 충돌을 해결하고 나면 병합 수락을 선택합니다. 충돌하는 모든 파일에 대해 이 프로세스를 반복합니다.
Git 변경 내용 창에서 병합 커밋을 만들고 충돌을 해결합니다.
참고 항목
파일의 모든 변경 내용을 유지하려면 병합 편집기를 열지 않고 병합되지 않은 변경 내용 섹션 아래에서 파일을 마우스 오른쪽 단추로 클릭하고 현재 파일 유지(로컬)를 선택하면 됩니다.
팁
사용 가능한 접근성 옵션에 대한 자세한 내용은 Visual Studio의 접근성 팁과 요령 페이지의 Git 바로 가기 키 섹션을 참조하세요.
diff 도구 구성
BeyondCompare 또는 KDiff3과 같은 타사 diff 도구를 사용하도록 .gitconfig
파일을 설정하는 경우 Visual Studio에서 해당 도구를 적용합니다. Visual Studio에서 일반적으로 diff를 표시할 때마다 원하는 도구에서 별도의 창이 열립니다. 예를 보려면 이 StackOverflow 질문을 참조하세요.