티스토리 뷰
이클립스에서 git을 사용하면 여러가지 문제와 직면하게 된다. 그중 가장 골치가 아픈것이 충돌(Conflict) 문제인데 이에 대해 간단하게 해결하는 방법에 대해 소개하고자 한다.
Pull Conflict
pull 을 받고 commit & push를 하려고 했는데 위와 같은 오류창이 뜨며 pull이 정상적으로 진행되지 않는다. 누군가가 작성한 소스와 내가 작성한 소스가 충돌이 나는 것이다. 위 오류 로그에는 pom.xml, WebConfig.java, validation.properties 파일이 충돌이 난다고 한다.
해결을 하기 위해서 Git Staging view를 활용을 한다. 이클립스에서 git을 사용하면 Git Staging은 필수이다.
이클립스 상단의 Window > Show View > others > git 으로 검색하여 Git Staging을 열어준다.
이것으로 열어보면 문제가 되었던 파일들을 찾을 수 있다. pom.xml, WebConfig.java, validation.properties 에서 충돌이 나지 않게 내가 수정한 내용을 원상복구 시켜야 한다. 물론 내가 변경한 내용들에 대해서는 별도의 파일에 백업을 해놓아야 한다. 다른 여러가지 충돌에 대한 해결책이 있지만 이 원시적인 방법이 나에게는 가장 쉽고 빠른 길인것 같다.
git staging에 위치한 파일중 pom.xml 을 더블클릭하면 위와 같이 Text Compare 모드로 열린다. 좌측은 내가 변경한 현재 내 소스이고 우측은 내 로컬 repository에 저장되어 있는 원본 소스라고 보면 된다. 좌측의 내용을 백업하고 우측 상단의 빨간 네모친 버튼을 누른다. 그리고 나서 저장을 눌러준다.
그럼 당연히 내가 변경한 소스가 원상복구 되어서 변경된 내용이 없게 되므로 git staging의 unstaged changes 목록에서도 빠지게 된다. 이런식으로 문제가 되는 파일들에 대해 조치를 취해줘야 한다. 이렇게 다 하면 pull을 받기 위한 준비가 된것이다. 다 되었다면 다시 pull을 해준다.
원격지에 있는 소스로부터 pull을 성공적으로 수행하였다. 그 다음은 다시 내가 백업해놓은 소스를 소스에 반영하여 commit & push를 수행해주면 된다.
끝!
'CI,CD > SCM' 카테고리의 다른 글
Windows10 에 gitlab 대신 gogs 설치하기, 그리고 간단 사용법 (0) | 2021.03.25 |
---|---|
Eclipse에서 Git Pull할때 DIRTY_INDEX Failed 오류 조치 (1) | 2021.02.19 |
Jenkins에서 Git Publisher 사용시 returned status code 128 오류 (0) | 2020.12.28 |
git push할때 RFC failed; 413 Request Entity Too Large 오류 해결 (0) | 2020.12.09 |
SVN 계정별로 프로젝트 접근권한 설정하기 (0) | 2020.11.19 |