[TIL #28 WECODE] Git - Conflict 해결법

Whoyoung90·2021년 3월 27일
0
post-thumbnail

210325 WECODE #28 [React] LUSH Cloning 팀 프로젝트

오늘 내용은 이번 프로젝트를 진행하면서 branchmerge받는 과정 중 발생하는
충돌과정을 해결했던 방법을 기록하는 포스트이다.

즉, 이 과정대로 진행하면 기본적인 conflict는 해결 가능하다는 것 :)

  • 로컬 masterbranch를 만들어 작업을 진행하고 나서 branchgit push하고 pull request를 할 때 conflict가 나는 경우가 발생한다.

  • 이런 경우 다른 작업자가 나와 같은 라인을 수정하고, 그 수정한 내역을 master먼저 합쳤을 때(merge했을 때) 나한테 나타나는 자연스러운 상황이다.

이런 상황은 충돌된 코드를 수정해줘야 pull request가 가능하다.

해결방법

  • 현재 작업하던 로컬의 브랜치영역에서
    git checkout master를 입력하여 master 브랜치로 이동

  • 그리고 git pull origin master를 입력해서
    최신 업데이트된 리모트 저장소의 master 브랜치를 나의 로컬 master에 덮어준다.

  • 그리고 나서 git checkout을 통해 충돌났던 브랜치로 다시 이동

  • 이 브랜치와 최신버전의 master 브랜치를 merge 해준다.(로컬에서)
    명령어는 git merge master

  • 이 과정을 거치면 리모트에서의 conflict 상황이 로컬에서 재연되는데,
    다른 작업자가 수정해놓은 최신버전과 현재 내가 수정한 브랜치가 충돌하는 것이다.
    왜 로컬에서 재연시키냐구요? 로컬에서 conflict를 수정해야 하니깐!

이렇게 충돌된 파일이 확인되면, change란에 들어가 수정해주면 된다. 아래는 내 로컬영역에 떴던 conflict 화면이다.

  • 파일마다 충돌된 내용들이<<<HEAD, >>> master 이런 표식들과 함께 뜬다.
  • 간단히 말하면,
    파란색이 리모트 master에서 내려온 내용(Incoming Change)!
    초록색은 로컬영역에서 내가 추가적으로 작업한 내용(Current Change)!
  • 표식들도 전부 지워주고, 현재 파일에서 남기고 싶은 부분만 남긴 다음 저장하면 된다
  • 그리고 다시 git add, commit, push, pull request하면 해결완료!

주의사항

해결을 다하고 pull request를 하기 전에
혹시 다른 사람이 올린게 먼저 업데이트되서 master가 또 먼저 변경된다면
또다시 충돌이 날 수 있으니! 다른 작업자들과의 소통은 필수이다!!!

profile
비전공으로 일식 쉐프가 되었듯, 배움에 겸손한 프론트엔드 개발자가 되겠습니다 :)

0개의 댓글