2017-11-06 18 views
2

GIT 작업 흐름을 작동 시키려고했지만 VS2017 (v15.4.2) GIT UI를 사용하는 데 어려움이 있습니다. 새로운 윈폼 프로젝트라는 이름의 테스트를 작성하고 그것을 위해 로컬 저장소를 생성VS2017 GIT 병합 충돌 해결

  • :

    이들은

    내 단계입니다.
  • 이 feature1 분기
  • 커밋 클래스 1라는 이름의 클래스를 추가하고 여기에 Feature1라는 방법 를 추가 활성화 feature2라는 마스터 지점에서 지점을 만들기라는 마스터 지점 feature1
  • 에서 지점 만들기
  • 이 feature2 분기 클래스 1라는 이름의 클래스를 추가하고 여기에
  • 을 feature2라는 방법을 추가 변경을
  • 커밋 feature2 분기를 병합 활성화 변경 마스터 브랜치 ( 은 이제 Feature2 메소드를 가진 Class1을가집니다)
  • feature1 브랜치를 마스터에 병합하십시오.

이렇게하면 병합 충돌이 발생합니다. 그러나 잘못된 Class1 파일을 만들지 않으면 병합 충돌을 해결할 수 없습니다. Feature1 메서드를 기존 Class1 파일에 추가하는 것만 가능하지는 않습니다. using 문과 클래스 정의가 삽입되기 때문입니다.

기존 Class1에 추가 된 Feature2 메서드 만 어떻게 추가합니까? 나는 여기에서 명백한 무엇인가 놓치고 있냐?

감사합니다.

답변

0

Visual Studio에서 merge conflicts을 해결하는 것은 이상적인 경험이 아닙니다. 두 복사본은 커밋과 해당 해시를 기준으로 비교됩니다. 두 파일이 똑같아 보이고 다른 해시를 가진 두 개의 다른 커밋에서 비롯된 것이라면 Visual Studio에서는 이러한 커밋을 해결하기가 어렵다는 것을 알게됩니다.

  1. 수동으로 Feature2 방법을 복사 feature1 지점에서 작업 복사본에 추가하고 master이 지점을 병합하려고 : 당신은이 경우 두 가지 옵션이 있습니다. merge conflict이 다시 표시되지만 Visual Studio에서는 take source 또는 take target 중 하나를 선택할 수있는 옵션을 제공합니다. 이 경우, feature1 브랜치에 해당하는 take source 브랜치가 있습니다.이 브랜치에 필요한 모든 변경 사항이 있으므로, master에서 제공하는 충돌을 무시할 수 있습니다.
  2. 설치 Tortoise Git. 당신은 다른 평판 좋은 자식 클라이언트를 선택할 수 있습니다. 이러한 클라이언트는 동일한 변경 사항을 감지하고 여기에서 고통당하는 종류 인 merge-conflicts을 자동으로 해결합니다.
0

Visual Studio에서 충돌하는 파일을 "병합"하고 병합을 완료하기 전에 병합 된 버전을 편집 할 수 있습니다. Resolve Conflicts 페이지에서 충돌을 선택하고 병합 할 수 있어야합니다. 충돌을 해결 한 후 결과를 수락 할 수 있습니다 (필요한 경우 해결 된 콘텐츠 편집).당신은 유사한 UI를 볼 수

다음 Merge conflicting file

이 예상 (성공적으로) 당신이 충돌을 해결 할 수 있습니까?