Git _ Conflict(충돌)

Minji Jeong·2021년 9월 16일
0

Git

목록 보기
2/3

여러 사람이 깃허브로 프로젝트를 관리하다 보면, 코드를 수정하는 과정에서 충돌이 발생할 수가 있고 이를 conflict가 발생했다고 한다. 꽤 자주 접할 수 있는데, 제대로 안다면 해결하고 간단히 끝낼 수 있지만, 모른다면 해결하는 과정이 상당히 두려울 것이다. 따라서 왜 발생하는지, 어떻게 해결하는지 제대로 이해하고 넘어가는 것이 현명하게 Git을 사용하는 방법일 것이다.

Conflict가 발생하는 과정

정말 간단하게 설명하자면
각 branch에서 여러 사람이 같은 파일을 변경했을 때, 어떤 내용을 적용할지 몰라 내는 오류이다.

  1. B가 index.js를 수정하여 push하고 Pull Request를 보냄
  2. C도 index.js를 수정하여 push하고 Pull Request를 보냄
  3. Master에서 B의 PR을 먼저 merge
  4. Master가 C의 PR을 merge 하려던 중,
    B와 같은 파일(index.js)을 변경한 것을 발견하고 둘 중 어떤 변경사항을 받아들여야 할지 몰라 Conflict 오류를 냄

그렇다면 이 Conflict 오류를 어떻게 해결해야 할까?

Conflict 해결 과정

  1. C가 B의 코드가 merge 된 Master 내용을 pull
    git pull origin master
  2. C는 자신의 branch에서 merge하는 명령어 입력
    git merge master
  3. 충돌난 코드들을 보고,
    Accept Current Change / Accept Imcoming Change 등 중 하나를 클릭
  4. 충돌된 코드를 정리한 후, 변경된 내용을 다시 push
  5. 다시 C의 코드를 merge 할 수 있도록 버튼이 활성화됨

간단한 예시를 들어서 conflict를 직접 발생시키고 해결해 보았다. 실제로 많은 사람과 프로젝트를 하게 되면, 이것보다 훨씬 복잡한 상황에서 conflict가 발생할 것이고, 어떤 코드를 accept 할 것인지 정하는 것도 쉽지는 않을 것 같다.

요즘 코드를 해결하는 시간과 git 문제를 해결하는 시간이 거의 비례하는 것 같다. git에서 문제가 발생하면 정말 화가 나지만😑 작은 프로젝트 하면서 부딪히는 연습을 해야 나중에 큰 실수를 하지 않을 거라고 생각한다.

profile
쿼카를 사랑하는 프론트엔드 개발자입니다 :)

0개의 댓글