[VS Code][Git] VS Code를 이용하여 Git 충돌(Conflict) 해결하기 - Conflict Merge

 


 Git 충돌 병합함에 있어 적합한 VS Code 기능을 소개합니다.


1. 충돌상황

 Git 소스코드 충돌이란, 두 명 이상의 작업자가 동일한 파일을 작업했을 때 주로 발생합니다.

본인이 작업한 내용을 원격(REMOTE)에 반영하기 전 PULL 수행과정에서 동일 파일 내에 작성자의 수정범위와 이전 작성자의 수정범위가 겹치는 경우 발생합니다.


[원본 : Base]

작업자      : 왕씨
작업내용    : "main" 브랜치 커밋

[작성자의 수정내용 : LOCAL]

작업자      : 왕씨
작업내용    : "main" 브랜치 커밋

1)
작업자      : 육씨
작업내용    : A Part 작업중

[이전 작성자의 수정내용 : REMOTE] :: 작성자가 PULL 받게되는 내용

작업자      : 왕씨
작업내용    : "main" 브랜치 커밋

1)
작업자      : 황씨
작업내용    : A Part 완료

2)
작업자      : 박씨
작업내용    : B Part 완료

✻ 충돌 범위


2. VS Code에서 확인하기

 ① 충돌이 발생한 파일의 경우 좌측과 같이 붉은 색으로 강조됨.

 ② 빠른 병합도구로 충돌 범위를 빠르게 병합할 수 있음.

  • Accept Current Change     : 현재(LOCAL) 기준으로 병합 (현 작성자 기준)
  • Accept Incoming Chnage   : 원격(REMOTE) 기준으로 병합 (이전 작성자 기준)
  • Accept Both Changes        : 현재(LOCAL), 원격(REMOTE) 모두 적절히 뒤섞인 병합
  • Compare Changes            : 현재(LOCAL)과 원격(REMOTE)의 차이 비교창이 열림. (읽기전용)

 ③ "병합 편집기에서 확인" 버튼 클릭 하여, 병합화면으로 이동하여 상세 내용 병합



3. VS Code 병합 편집기

아래 사진과 같이 3가지 영역으로 보여지며, 상단의 두 영역의 수락버튼들을 조작하여 최종 병합(Merge) 결과를 확인할 수 있다.

수신 : 원격(REMOTE) 작성내용

현재 : 로컬(LOCAL) 작성내용

결과 : 위 영역에서 수락한 내용들의 결과 출력

[병합 편집기 분석]


 위에서 설명한 충돌 상황을 아래와 같이 병합한 결과이다. 결과창에서 직접 수정한 경우 "수동해결 | 기본으로 다시설정" 문구가 출력되어 표기하는 데, 기본으로 다시설정을 클릭하면 병합내용이 원복된다.

1) 수신 수락

2) 현재 수락

3) 결과창에서 편집 (현재의 넘버링 1을 3 순번으로 변경)




4. 병합완료

 마지막으로 병합편집기 하단의 "병합완료" 버튼을 클릭하면, 해당 파일의 충돌상태가 해제되며 Merge Request가 생성된다.





0 댓글