All Articles

GitHub - push 후 발생하는 conflict 해결법

공동 작업을 하다보면 수정한 코드 파일을 repository에 올릴 때 충돌(conflict)이 일어날 수 있다. 에디터에서 파일을 열어보면 어느 부분 때문에 충돌이 났는지, 어떻게 수정하면 되는지 볼 수 있기 때문에 가이드 메시지를 따라가면 문제를 해결할 수 있다.

README.md 파일 안 테이블에 이름을 더 많이 쓴 사람이 이기는 게임을 통해 충돌이 났을 때 GitHub의 모양새가 어떤지, 파일 모양새가 어떤지 보고, 그것을 어떻게 해결하는지 실습했다.

  1. GitHub에서 Pull Request 후 충돌이 발생했는지 확인한다.

  2. git checkout master
    feature branch push 후에 master branch로 빠져나온다.

  3. git pull origin master
    최신 버전의 파일을 로컬로 가져온다.

  4. git checkout 기능 브랜치 이름
    충돌이 난 작업을 했던 기능 브랜치로 다시 이동한다.

  5. git merge master
    master 파일과 비교해서 어디가 잘못된 건지 알기 위해 master와 합쳐준다.

  6. vi 파일명
    에디터(vim)에서 파일을 열고 수정한다. HEAD 부분부터 이중선까지가 내가 쓴 코드, 그 아래가 충돌이 난 코드다. 지워주어야 할 부분을 지우고 파일을 저장한다.

  7. git add 파일명 또는 git add .
    다시 중간 저장을 해준다.

  8. git commit -m "코멘트"
    중간 저장 완료한 파일을 원격 저장소로 내보내줄 준비를 한다.

  9. git push origin featuer/브랜치 이름
    원격 저장소로 내보내준다.

  10. conflict 표시가 없어지면 성공

파일 간 충돌 시 안내 메시지가 나온다고는 하나, 실제 업무 환경에서 코드를 어떻게 수정하면 될지 아직 판단이 잘 서지 않는다. 다양한 충돌 상황을 겪으면서 경험치가 쌓이길💪