다음을 통해 공유


Team Foundation 버전 제어 충돌 해결

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

TFVC(Team Foundation 버전 제어)를 사용하여 파일을 관리하는 장점은 여러 사람이 파일에서 동시에 작업할 수 있다는 것입니다. 한 가지 단점은 파일을 가져오기, 체크 인, 해제, 병합 또는 롤백하기 전에 충돌을 해결해야 하는 경우가 있다는 것입니다.

충돌이 발생하는 것이 불편할 수 있지만 시스템은 충돌을 이해하고 해결하는 데 도움이 되는 정보와 도구를 제공합니다.

해결 명령을 사용하여 명령줄에서 충돌을 해결할 수도 있습니다.

팀이 대규모 코드베이스에서 병합 작업을 수행한 후와 같이 많은 수의 충돌을 해결하기 위해 공동 작업해야 하는 경우 공유 개발 머신의 공용 작업 영역이 도움이 될 수 있습니다. 자세한 내용은 작업 영역 만들기 및 작업을 참조 하세요.

충돌 해결

Visual Studio 충돌 해결 창을 사용하여 차단되는 충돌을 해결할 수 있습니다. 창을 열려면 팀 탐색기의 보류 중인 변경 내용 페이지에서 작업 해결 충돌을 선택합니다>.

충돌 해결 창을 사용하여 충돌을 해결하는 스크린샷

기본적으로 창에는 시도한 가장 최근 작업으로 인한 충돌만 표시됩니다. 창이 이 상태이면 경로 필터가 적용된 메시지가 시작됩니다. 작업 영역의 모든 충돌을 표시하려면 모든 충돌 가져오기를 선택합니다. N Conflict으로 <> 시작하는 메시지가 나타납니다.

작업 영역의 파일을 변경한 후 많은 시간이 지나면 새 충돌이 발생했을 수 있습니다. 충돌 해결 창을 새로 고치려면 새로 고침을 선택합니다.

충돌 해결 창을 보여 주는 스크린샷.

각 충돌에는 정보 및 문제를 해결하는 데 도움이 될 수 있는 링크가 포함되어 있습니다. 자세한 정보를 얻으려면 충돌을 선택하고 다음 옵션 중 하나를 선택할 수 있습니다.

  • 기록 아이콘입니다. 파일의 기록을 볼 수 있는 기록입니다. 충돌을 일으킨 작업이 병합 또는 롤백인 경우 기록 오른쪽에 있는 메뉴 컨트롤을 선택한 다음 원본 기록 또는 대상 기록을 선택할 수 있습니다. 자세한 내용은 항목의 기록 가져오기를 참조 하세요.

  • 비교 아이콘아이콘 옆에 있는 드롭다운 화살표를 비교하거나 선택한 다음 명령을 선택합니다. Diff 창열립니다.

  • 주석 달기 아이콘입니다.각 변경한 사용자와 변경한 시기를 포함하여 파일의 최신 버전에 적용된 모든 변경 내용에 대한 세부 정보를 보려면 주석을 추가합니다. 주석을 사용하여 파일 변경 내용 보기를 참조 하세요.

모든 충돌 자동 고침

기본적으로 시스템은 이 옵션을 해제하지 않는 한 모든 충돌을 자동으로 해결하려고 시도합니다. 자동 자동 해제 모두 해제하려면 [도구>옵션]을 선택합니다. 옵션 대화 상자의 소스 제어>Visual Studio Team Foundation Server에서 충돌이 생성될 때 자동으로 해결하려는 시도를 선택 취소합니다.

충돌 해결 창에서 [모두 자동 해결]을 수동으로 선택한 다음, 다음 옵션 중 하나를 선택할 수도 있습니다.

  • 시스템이 모든 추론을 사용하여 자동으로 충돌을 해결하려고 하려는 경우 모든 충돌 유형 입니다.

  • 시스템에서 충돌을 해결하려고 하지만 일부 추론을 제외하려는 경우 특정 충돌 유형 입니다.

    해결하려면 충돌 선택 대화 상자가 나타납니다. 사용하거나 사용하지 않도록 설정할 옵션을 선택하거나 선택 취소한 다음 AutoResolve를 선택합니다.

    시스템은 보류 중인 변경 내용 창에 표시되는 충돌을 자동으로 해결하려고 시도합니다. 시스템에서 해결할 수 없는 충돌은 창에 남아 있습니다. 이러한 충돌을 수동으로 해결해야 합니다.

자동 옵션 이해

AutoResolve All 옵션으로 자동으로 해결되는 충돌 유형을 제한할 수 있습니다. 모두 자동 해결을 선택한 다음 특정 충돌 유형을 선택하면 해결할 충돌 선택 대화 상자가 나타납니다.

해결할 충돌 선택 대화 상자를 보여 주는 스크린샷.

충돌의 원인

예제

확인란 선택


충돌하지 않는 콘텐츠는 파일의 각 버전에서 변경되었습니다.

왼쪽 의 파일 버전에서는 처음에 0 이 추가되었습니다. 오른쪽 의 파일에서 끝에 세 가지가 추가되었습니다.

충돌하지 않는 콘텐츠 변경의 스크린샷.

콘텐츠 변경 내용과 충돌

작업 영역에 고유한 가져오기 또는 체크 인 작업 또는 대상 버전에 고유한 병합 또는 롤백 작업 중에 콘텐츠가 변경되었습니다.

항목 4 개와 5 개가 작업 영역 또는 대상 버전에 추가되었습니다.

작업 영역 또는 대상에 고유한 콘텐츠 변경 내용의 스크린샷

로컬 작업 영역 또는 대상 분기에서만 변경된 콘텐츠와 충돌

서버에 고유한 가져오기 또는 체크 인 작업 중 또는 원본 버전에 고유한 병합 또는 롤백 작업 중에 콘텐츠가 변경되었습니다.

항목 4 개와 5 개가 서버 또는 원본 버전에 추가되었습니다.

서버 또는 원본에 고유한 콘텐츠 변경 내용의 스크린샷

서버 버전 또는 원본 분기에서만 변경된 콘텐츠와 충돌

가져오기 또는 체크 인 작업 중 서버 또는 병합 또는 롤백 작업 중 원본 분기에서 파일 이름이 바뀌었습니다.

launch.cs 이름이 지정된 파일을 체크 아웃하고 작업했습니다. 이 시간 동안 다른 사용자가 동일한 파일에 영향을 주는 변경 집합을 확인했습니다. 해당 변경 집합은 파일의 내용을 수정하지 않았지만 파일 이름을 start.cs 변경했습니다.

서버 버전 또는 원본 분기에서 파일 이름을 변경하여 발생하는 충돌

일반적인 콘텐츠가 변경되어 각 버전에서 동일한 콘텐츠가 생성되었습니다. 또는 파일을 변경하고, 제어된 체크 인 빌드를 통해 체크 인한 다음, 보류 중인 변경 내용 유지 옵션을 로컬로 선택했습니다.

각 버전을 변경하면 파일 콘텐츠가 동일합니다. 다음 예제와 같이 파일의 콘텐츠가 변경될 수 있습니다.

두 버전에서 동일한 콘텐츠 변경 내용을 보여 주는 스크린샷

서버 및 작업 영역의 동일한 변경으로 인한 충돌

또한 이 옵션은 이름 바꾸기, 삭제, 삭제 취소 및 분기와 같은 다른 모든 작업으로 인해 발생하는 충돌을 해결하여 동일한 파일을 생성합니다.

이 확인란을 선택하면 계속 진행하면 시스템에서 서버 버전을 작업 영역에 다운로드하여 이러한 변경 내용을 해결합니다.

선택한 충돌 자동 합계

위의 모든 자동 합계 옵션을 사용하여 선택한 충돌을 해결하려면 하나 이상의 충돌을 선택한 다음 AutoMerge를 선택합니다.

Ctrl 키나 Shift 키를 길게 눌러 여러 충돌을 선택할 수 있습니다.

참고 항목

AutoMerge를 사용하지 않도록 설정한 경우 충돌을 수동으로 해결해야 합니다.

선택한 충돌 수동 해결

시스템에서 충돌을 자동으로 해결할 수 없거나 변경 내용을 이해하려면 수동으로 충돌을 해결해야 합니다. 각 충돌 내에서 시스템은 충돌을 해결하기 위해 수행할 수 있는 작업을 표시합니다. 표시되는 작업은 충돌 유형 및 충돌을 일으킨 작업에 따라 달라집니다.

병합 창 사용

콘텐츠 변경 내용이 충돌하는 경우 병합 도구에서 변경 내용 병합을 선택할 수 있습니다. 병합 창이 나타납니다.

병합 도구의 병합 변경 내용을 보여 주는 스크린샷

병합 창에서 다음을 수행할 수 있습니다.

  • 세로 보기, 가로 보기 또는 혼합 보기의 레이아웃을 선택합니다.
  • 차이점과 충돌 사이를 탐색합니다.
  • 파일의 왼쪽 및 오른쪽 버전에서 항목을 선택하여 결과에 포함합니다.
  • 결과 창의 파일에 더 많은 콘텐츠를 입력합니다.
  • 파일의 기록을 봅니다. 자세한 내용은 항목의 기록 가져오기를 참조 하세요.
  • 파일 버전을 비교합니다.
  • 파일에 주석을 추가하여 누가 무엇을 변경했는지 확인합니다. 자세한 내용은 주석을 사용하여 파일 변경 내용 보기를 참조 하세요.

결과 창의 내용에 만족하면 병합 수락을 선택합니다.

충돌 해결 결과가 결과 창에 나타납니다.