여러 사람이 깃허브로 프로젝트를 관리하다 보면, 코드를 수정하는 과정에서 충돌이 발생할 수가 있고 이를 conflict가 발생했다고 한다. 꽤 자주 접할 수 있는데, 제대로 안다면 해결하고 간단히 끝낼 수 있지만, 모른다면 해결하는 과정이 상당히 두려울 것이다. 따라서 왜 발생하는지, 어떻게 해결하는지 제대로 이해하고 넘어가는 것이 현명하게 Git을 사용하는 방법일 것이다.
정말 간단하게 설명하자면
각 branch에서 여러 사람이 같은 파일을 변경했을 때, 어떤 내용을 적용할지 몰라 내는 오류이다.
- B가 index.js를 수정하여 push하고 Pull Request를 보냄
- C도 index.js를 수정하여 push하고 Pull Request를 보냄
- Master에서 B의 PR을 먼저 merge
- Master가 C의 PR을 merge 하려던 중,
B와 같은 파일(index.js)을 변경한 것을 발견하고 둘 중 어떤 변경사항을 받아들여야 할지 몰라 Conflict 오류를 냄
그렇다면 이 Conflict 오류를 어떻게 해결해야 할까?
git pull origin master
git merge master
요즘 코드를 해결하는 시간과 git 문제를 해결하는 시간이 거의 비례하는 것 같다. git에서 문제가 발생하면 정말 화가 나지만😑 작은 프로젝트 하면서 부딪히는 연습을 해야 나중에 큰 실수를 하지 않을 거라고 생각한다.