공동 작업을 하다보면 수정한 코드 파일을 repository에 올릴 때 충돌(conflict)이 일어날 수 있다. 에디터에서 파일을 열어보면 어느 부분 때문에 충돌이 났는지, 어떻게 수정하면 되는지 볼 수 있기 때문에 가이드 메시지를 따라가면 문제를 해결할 수 있다.
README.md 파일 안 테이블에 이름을 더 많이 쓴 사람이 이기는 게임을 통해 충돌이 났을 때 GitHub의 모양새가 어떤지, 파일 모양새가 어떤지 보고, 그것을 어떻게 해결하는지 실습했다.
- GitHub에서 Pull Request 후 충돌이 발생했는지 확인한다.
git checkout master
feature branchpush
후에 master branch로 빠져나온다.
git pull origin master
최신 버전의 파일을 로컬로 가져온다.
git checkout 기능 브랜치 이름
충돌이 난 작업을 했던 기능 브랜치로 다시 이동한다.
git merge master
master 파일과 비교해서 어디가 잘못된 건지 알기 위해 master와 합쳐준다.
vi 파일명
에디터(vim)에서 파일을 열고 수정한다. HEAD 부분부터 이중선까지가 내가 쓴 코드, 그 아래가 충돌이 난 코드다. 지워주어야 할 부분을 지우고 파일을 저장한다.
git add 파일명
또는git add .
다시 중간 저장을 해준다.
git commit -m "코멘트"
중간 저장 완료한 파일을 원격 저장소로 내보내줄 준비를 한다.
git push origin featuer/브랜치 이름
원격 저장소로 내보내준다.
- conflict 표시가 없어지면 성공
파일 간 충돌 시 안내 메시지가 나온다고는 하나, 실제 업무 환경에서 코드를 어떻게 수정하면 될지 아직 판단이 잘 서지 않는다. 다양한 충돌 상황을 겪으면서 경험치가 쌓이길💪