오늘 내용은 이번 프로젝트를 진행하면서
branch
를merge
받는 과정 중 발생하는
충돌과정을 해결했던 방법을 기록하는 포스트이다.즉, 이 과정대로 진행하면 기본적인 conflict는 해결 가능하다는 것 :)
로컬 master
에 branch
를 만들어 작업을 진행하고 나서 branch
를 git 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가 또 먼저 변경된다면
또다시 충돌이 날 수 있으니! 다른 작업자들과의 소통은 필수이다!!!