Git Conflict

설탕·2022년 1월 12일
0

Git

목록 보기
3/5

Git Conflict

conflict는 같은 부분을 수정했을 때 발생한다.

예를 들어 한 사람은 0 → 1로 변경하고, 다른 사람은 0 → 2로 변경했을 때, 각각의 git은 0으로부터의 변경사항을 갖게 된다. 0 → 1로 변경한 사람이 먼저 PR을 날려서 remote의 master에서 1의 상태가 되었을 때, 그 이후에 0 → 2로 변경한 사람이 PR을 날리면 conflict가 발생한다. PR대로라면 0을 2로 변경해야 하는데 master 상태가 0이 아닌 1이 되어있기 때문이다.

PR을 날렸는데 conflict가 발생하면 다음과 같은 메세지를 볼 수 있다.

git conflict는 팀 프로젝트를 진행할 때 종종 발생할 수 있다. conflict 발생 자체가 잘못된 것은 아니다. conflict가 발생했을 때 잘 해결하면 된다.

Git Conflict 해결 방법

  1. remote master의 현재 상태를 local master로 받아온다.
    git pull origin master
  2. 로컬에서 작업 중인 브랜치로 이동한다.
    git checkout 작업중인 브랜치이름
  3. 작업하던 브랜치에 master의 변경사항을 병합한다.
    git merge master
  4. 작업하던 브랜치에서 conflict 발생한 사항을 수정한 후 저장한다. 이때 VS Code에서 열면 다음과 같은 merge tool을 제공한다.
    • Accept Current Change -> 기존 local에서의 변경사항 적용
    • Accept Incoming Change -> remote에서 pull 받아온 변경사항 적용
    • Accept Both Change: 둘 다 적용
    • Compare Change: conflict 발생한 부분을 비교해서 보기
  5. 다시 commit하고 push한다.
    git add .
    git commit -m "Fix: conflict resolve"
    git push origin 작업중인 브랜치이름
  6. PR을 들어가보면 conflict가 없어진 것을 확인할 수 있다.

그럼 pull은 언제 받아오는가?

  • branch 생성하기 전에
  • git push하기 전에
profile
공부 기록

0개의 댓글