Git은 여러명이 동시에 코드를 수정할수 있는 분산서버관리시스템이다.
즉 아무리 git과 branch를 잘 나눠놨다고 해도 서로 겹치는 부분을 수정하고 add -> commit -> push -> merge 하게되면 충돌이 일어나게 된다. 그러나 파일이 같아도 수정한 부분이 다르다면 자동으로 합쳐지게 된다. 하지만 만약에 수정한 부분이 같거나 충돌이 일어나게 된다면 conflict를 어떻게 해결해야 할까
remote main 최신 상태를 local main으로 pull 받는다 ( git pull origin main )
작업 브랜치에서 local master을 merge 시킨다
master와 작업 브랜치가 똑같은 파일을 고치면 conflict이 나고, 해당 파일을 수정한다
해결해서 만들어진 merge commit을 push ( merge commit 이 새로 생성 )
장점 : 한번의 merge로 해결
단점 : merge commit이 생겨 깔끔하지 않음 > 수정한 의미있는 커밋만 존재하는게 깔끔
$ git pull origin master
$ git merge --continue
$ git push origin 작업 브랜치
push를 하고 난 후 github 를 살펴보게되면 conflict가 나게된다. git status 에서 살펴보게된다면 충돌이 나면서 vscode에서 직접 수정하기 전 부분과 수정한 다음의 부분을 코드에서 둘다 보여주게 된다.
충돌이 난 두가지의 부분을 본인이 직접 하나씩 체크해가면서 해결 후 add -> commit -> push -> merge 후 깃에 실제로 올리면 된다.
앞으로 더 많은 충돌이 일어나게 될텐데 항상 작업한 부분을 merge했다면 그전에 먼저 pull 하고 작업을 하는 순서가 바람직할것 같다.