본문 바로가기
프로그래밍/Git

gitlab merge conflicts 해결 방법

by 서울에서 살아가기 2023. 2. 21.

 

 

 

 

 

gitlab으로 협업 프로젝트를 진행하다 보면 같은 파일을 여러 명이서 동시에 수정하는 경우가 생기게 됩니다.

이때 동시에 같은 파일 작업물을 git repository로 push를 하고 merge를 수행하는 경우 conflicts (충돌)이 발생하게 됩니다.

 

Merge requests에 들어가서 프로세스를 진행하다보면 merge conflicts 발생 시 아래와 같은 화면이 표출됩니다.

Resolve-conlicts
Resolve conflicts

gitlab merge conflicts 해결을 위해 Resolve locally와 Resolve conflicts 2가지 해결 방법에 대해 설명드리겠습니다.

 

 

 

  git merge conflicts 해결 방법

1. Resolve conflicts

이 방법은 gitlab에서 클릭 몇번으로 확인 과정만 거치면 해결해주기 때문에 간단합니다.

 

1. merge requests 메뉴로 이동합니다.

2. Resolve conflicts를 선택합니다.

- 해당 게시글 맨 위에서 표출되는 화면 참조

3. 충돌이 발생하는 변경 사항을 결정합니다

git-conflicts
git conflicts

Use outs: 자신이 변경한 내용 (초록색)

Use theirs: 다른 팀원이 변경한 내용 (파란색)

 

4. Commit to source branch로 최종 commit을 진행합니다.

 

 

2. Resolve locally

1. git fetch / git checkout 명령어를 수행합니다.

> git fetch
> git checkout -b 'branch명' 'origin/branch명'

명령어를 수행하여 git repository에 있는 최신 버전을 내려받고, 해당 branch로 변경합니다.

 

2. 로컬에서 변경사항을 확인합니다.

- 내려받은 git repository 최신버전과 로컬에서 수정한 내용을 비교합니다.

3. 모든 충돌사항들을 확인하고 해결합니다.

4. 해결된 변경사항을 git push 명령어로 git repository에 반영합니다.

> git push origin 'branch명'

 

 

3. 이것 저것 다 확인하기 힘들다

해결이 잘 안되고 진행 방법이 어렵다고 생각되면 아래 방법으로 진행해 주세요.

1. master에서 새로운 branch를 생성해서 내려받습니다.

2. 필요한 기능을 개발한 후 다시 git commit / push를 진행합니다.

3. gitlab에서 merge를 진행합니다.

 

변경된 최신 버전을 내려받고 수정을 진행하였기 때문에 충돌이 발생하지 않습니다,

 

 

 

 

 

반응형

댓글