메뉴 건너뛰기

XEDITION

프로그램

Eclipse Git Merge Conflict 해결 방법

묵묵이 2023.07.27 10:37 조회 수 : 1

 

 

Eclipse Git Merge Conflict 해결 방법 - CURVC DevOps - Confluence

 

 

 

Conflict 발생 시나리오

몇 가지의 원인으로 conflict이 발생한다. 본 문서는 두 명의 개발자가 같은 버전의 저장소를 수정한 후 push 할 때 발생하는 경우를 고려한다.

수정 전 코드 상태

아래는 수정 작업 전의 코드 상태를 나타낸다.

HelloWorld.java
1
2
3
4
5
6
7
public void setBoolean(boolean value)
{
    /*
     * 추후 플래그 변경시 이벤트 발생 기능 추가 필요
     */
    this.flagValue = value;
}

코드 수정

Developer와 Terry Hwang이 유사한 시간대에 코드를 수정한다.

개발자 이름: Alvin

  • 개발자 Terry Hwang 보다 먼저 코멘트 를 작성하여 저장소에 push 함
  • Code review 를 통과하여 저장소에 merge 됨
public void setBoolean(boolean value)
{
    /*
     * 플래그 변수값 변경
     */
    this.flagValue = value;
}

개발자 이름: Terry

  • Alvin 의 수정 내용을 인지하지 못하고 같은 코드 위치에 코멘트 작성
public void setBoolean(boolean value)
{
    /*
     * 추후 플래그 변경시 이벤트 발생 기능 추가 필요
     */
    this.flagValue = value;
}

Conflict 발생

Terry는 Eclipse에서 변경사항 push를 시도하면서 code conflict 인지

Conflict 해소 절차

Step 1) 원격 저장소의 변경사항 가져오기

프로젝트 선택하여 마우스 우클릭 >> Team >> Pull 선택

Conflicting이 발생한 commit 목록이 표시된다.

Step 2) Conflict 위치 찾기 및 수정

Eclipse의 Project Explorer에 conflict이 발생한 파일을 확인하다. 

Git은 컴파일 오류를 유발고 눈에 띄게 할 목적으로 conflict이 발생한 부분을 <<<<<<< ====== >>>>>>> 로 표시한다.

복잡한 conflict이 발생한 경우 Eclipse에서 제공하는 merge 기능이 유용하다.

Project (또는 conflict이 발생한 파일 선택) >> Team >> Merge Tool

Merge 도구를 통해 수동 merge가 필요한 파일과 위치를 찾을 수 있다.

Merge 도구 메뉴:

아이콘 배치의 순서대로,

  •  좌/우 view 치환
  •  두 변경의 공통 원본 표시
  •  Three way compare: 공통 원본과 함께 두 변경 비교
  •  Conflict가 발생하지 않는 오른 쪽의내용을 모두 왼쪽에 반영
  •  왼쪽 변경을 오른 쪽에 반영
  •  오른 쪽의 변경을 왼쪽에 반영
  •  다음 차이점 위치
  •  이전 차이점 위치
  •  다음 변경
  •  이전 변경

수정을 완료하고 파일을 저장한다.

Step 3) Merge 결과 Commit & Push

Merge 한 파일을 Staged Changes 창으로 이동시키고 "Commit and Push" 또는 Commit 한다.

 

번호 제목 글쓴이 날짜 조회 수
212 안드로이드 생체 인식 인증 샘플 file 묵묵이 2024.12.19 0
211 Webbrowser 버전은 아래와 같이 변경 묵묵이 2024.04.28 1
210 HttpURLConnection 이용한 통신 / 파일 다운로드 묵묵이 2024.03.14 0
209 [Spring Boot] Gradle 로 빌드 하는 법 묵묵이 2024.02.08 0
208 Gradle 프로젝트 설정 묵묵이 2024.02.08 0
207 document.baseURI 를 지원하지 않는 이슈 묵묵이 2024.01.23 0
206 ios WkWebview 개발자 모드에서 로그를 볼수 없는 현상 묵묵이 2023.12.21 0
205 Cordova(코르도바) 설치, 프로젝트 생성 묵묵이 2023.12.14 0
204 웹뷰(WebView) 사용법 묵묵이 2023.12.13 0
203 안드로이드 기본값으로 휴대폰 기울기에 따라 자동회전 막기 묵묵이 2023.12.13 0
202 화면모드로 전환시 WebView가 리로드되는 현상 묵묵이 2023.12.13 0
201 xeni 엑셀 다운로드 관련 file 묵묵이 2023.12.08 2
200 CKeditor4 를 이용한 게시판 글쓰기 구현 및 사진 업로드 [1] 묵묵이 2023.11.23 1
199 Jenkins REST API 호출로 Job 생성/실행/결과조회 하기 묵묵이 2023.09.22 1
198 키보드 변경시 앱 재시동 현상 묵묵이 2023.09.09 0
197 Tomcat(톰캣)에서 HTTP/2 (HTTP 2.0) 사용하기 묵묵이 2023.08.08 7
» Eclipse Git Merge Conflict 해결 방법 [1] 묵묵이 2023.07.27 1
195 유튜브 무료 영화 묵묵이 2023.07.24 0
194 Git 줄 끝을 처리하도록 Git 구성 2 [2] 묵묵이 2023.07.20 2
193 빌라가배 Villagabae - 풀빌라 거제 묵묵이 2023.07.18 0
위로