Svn tree conflict 해결 방법 c dll files

주요 콘텐츠로 건너뛰기

이 브라우저는 더 이상 지원되지 않습니다.

최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요.

Visual Studio에서 병합 충돌 해결

  • 아티클
  • 10/05/2022
  • 읽는 데 6분 걸림

이 문서의 내용

적용 대상:

Svn tree conflict 해결 방법 c dll files
Visual Studio
Svn tree conflict 해결 방법 c dll files
Mac용 Visual Studio
Svn tree conflict 해결 방법 c dll files
Visual Studio Code

한 분기를 다른 분기에 병합하면 하나의 분기에 있는 커밋의 파일 변경 내용이 다른 분기에 있는 변경 내용과 충돌할 수 있습니다. Git은 리포지토리의 기록을 사용하여 병합된 파일이 실제로 어떠해야 하는지 확인함으로써 이러한 변경 내용의 해결을 시도합니다. 변경 내용을 병합해야 하는 병합을 명확하게 알 수 없는 경우 Git은 병합을 중단하고 어느 파일이 충돌하는지 알려 줍니다.

병합 충돌의 이해

다음 이미지는 Git에서 변경 내용이 충돌하는 기본적인 예제를 보여 줍니다. 이 예제에서는 기본 분기와 bugfix 분기가 소스 코드의 동일한 줄을 업데이트합니다.

Svn tree conflict 해결 방법 c dll files

bugfix 분기를 기본 분기로 병합하려고 시도하면, Git이 병합된 버전에서 어느 변경 내용을 사용해야 하는지 판단할 수 없습니다. 기본 분기의 변경 내용, bugfix 분기의 변경 내용 또는 둘의 조합을 보관해 두는 것이 좋습니다. 이 충돌은 기본 분기에서 병합 커밋을 사용하여 해결합니다. 병합 커밋은 두 분기 사이의 충돌하는 변경 내용을 조정합니다.

Svn tree conflict 해결 방법 c dll files

가장 일반적인 병합 충돌 시나리오는 원격 분기에서 로컬 분기(예: 원래/bugfix 분기에서 로컬 bugfix 분기로)로 업데이트를 풀하는 경우에 발생합니다. 이러한 충돌을 같은 방식으로 해결할 수 있습니다. 즉, 로컬 분기에서 커밋을 만들어서 변경 내용을 조정한 다음, 병합을 완료합니다.

병합 충돌 방지

Git은 커밋 간에 파일 내용이 크게 변경되지 않은 경우 대부분의 상황에서 파일 변경 내용을 자동으로 알아서 병합합니다. 작업 중인 분기가 기본 분기보다 훨씬 이전이라면 끌어오기 요청을 열기 전에 분기를 다시 지정하는 것이 좋습니다. 다시 지정된 분기는 충돌 없이 기본 분기에 병합됩니다.

병합 충돌 해결

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

    Svn tree conflict 해결 방법 c dll files

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

    Svn tree conflict 해결 방법 c dll files

    참고

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

    이 예제에서 원격 리포지토리에 적용된 변경 내용을 포함하도록 풀한 다음, 푸시를 선택합니다. 변경 내용을 풀할 때나 두 분기의 병합을 시도할 때 병합 충돌이 발생하는 경우 Visual Studio가 Git 변경 내용 창, Git 리포지토리 창 및 충돌이 있는 파일에서 이 사실을 알려 줍니다.

    Svn tree conflict 해결 방법 c dll files

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

    Svn tree conflict 해결 방법 c dll files

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

    1. 충돌을 한 줄씩 확인하면서 확인란을 선택하여 오른쪽과 왼쪽 중에 유지할 항목을 선택합니다.
    2. 충돌하는 변경 내용을 모두 유지하거나 무시합니다.
    3. 결과 창에서 수동으로 코드를 편집합니다.

    Svn tree conflict 해결 방법 c dll files

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

    Svn tree conflict 해결 방법 c dll files

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

    Svn tree conflict 해결 방법 c dll files

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

    Svn tree conflict 해결 방법 c dll files

  • Git 변경 내용 창에서 병합 커밋을 만들고 충돌을 해결합니다.

    Svn tree conflict 해결 방법 c dll files

    참고

    파일의 모든 변경 내용을 유지하려면 병합 편집기를 열지 않고 병합되지 않은 변경 내용 섹션 아래에서 파일을 마우스 오른쪽 단추로 클릭하고 현재 파일 유지(로컬)를 선택하면 됩니다.

    Svn tree conflict 해결 방법 c dll files

다음 단계

과정을 계속하고 충돌 해결에 대해 자세히 알아보려면 병합 명령에 대한 Git 웹 페이지를 참조하세요.

참조

  • Visual Studio의 Git 환경
  • Visual Studio 및 GitHub: 함께 사용 시 더욱 효과적