5-2.Git 충돌 해결

2023. 2. 14. 00:08Git

브랜치 간 충돌

  • 파일의 같은 위치에 다른 내용이 입력된 상황

상황 만들기

  1. conflict-1, conflict-2 브랜치 생성

 

  1. main 브랜치
    • Tigers의 manager를 Kenneth로 변경
    • Leopards의 coach를 Nicholas로 변경
    • Panthers의 coach를 Shirley로 변경
    • 커밋 메시지: Edit Tigers, Leopards, Panthers

 

  1. conflict-1 브랜치
    • Tigers의 manager를 Deborah로 변경
    • 커밋 메시지: Edit Tigers

 

  1. conflict-2 브랜치 1차
    • Leopards의 coach를 Melissa로 변경
    • 커밋 메시지: Edit Leopards

 

  1. conflict-2 브랜치 2차
    • Panthers의 coach를 Raymond로 변경
    • 커밋 메시지: Edit Panthers

 


 

1. merge 충돌 해결하기

git merge conflict-1로 병합을 시도하면 충돌 발생

  • 오류 메시지와 git status 확인
  • VS Code에서 해당 부분 확인

 아래 기능 사라짐 노랗게 표시한 부분


VS Code의 현재 버전에서는 충돌 난 부분 상단의 글자 버튼들 (Accept Current...) 등이 나타나지 않습니다.
충돌시 직접 해당 부분을 직접 타이핑해서 수정한 다음 merge를 계속 진행하시면 됩니다.

 

당장 충돌 해결이 어려울 경우 아래 명령어로 merge 중단

git merge --abort

 

해결 가능 시 충돌 부분을 수정한 뒤 git add ., git commit으로 병합 완료

 


 

2. rebase 충돌 해결하기

conflict-2에서 git rebase main로 리베이스 시도하면 충돌 발생

  • 오류 메시지와 git status 확인
  • VS Code에서 해당 부분 확인

 

당장 충돌 해결이 어려울 경우 아래 명령어로 rebase 중단

git rebase --abort

 

해결 가능 시

  • 충돌 부분을 수정한 뒤 git add .
  • 아래 명령어로 계속
git rebase --continue
  • 충돌이 모두 해결될 때까지 반복

 

main에서 git merge conflict-2로 마무리

 

conflict-1, conflict-2 삭제