<GIT> Pull Request Merge 충돌 해결하기
레포지토리 상황
- Fork뜬 레포지토리의 branch : main,develope
- Fork를 떠온 원본 레포는 real-repo라고 remote 설정
에러 상황 서술
- 팀원이 풀리퀘를 올렸고, 해당 풀리퀘를 real-repo에 merge를 했습니다.
- 이상적인 상황은 로컬에서 해당 real-repo를 pull 땡겨만오면 에러가 발생하지 않습니다.
- 하지만,pull 명령어를 입력하니 아래과 같이 터미널에서 에러를 뱉어냅니다.
- 이때 아차싶어 IDE로 들어가 내가 변경한 코드가 있구나라는것을 깨닫습니다.
- 부랴부랴 add commit push까지 진행해버립니다.하지만 상황은 더욱 이상해져 버립니다.
- 이상함을 느끼고 깃헙을 들어가 보니 아래와 같이 Conflict가 발생했고 누가봐도 정상적인 상황이 아님을 알 수 있습니다.
해결
- 일단 아래와 같이 깃헙에서 개발에서 진행하던 브랜치가 아닌 main 브랜치로 접속합니다.
- 그러면 우측에 Fetch upstream이라는 버튼이 보일것이고 클릭하면 아래과 같이 무언가를 해준다고 합니다.일단 Fetch and merge를 눌러봅시다.
- 이후 터미널(or gitbash)로 접속해서 문제의 브랜치에서
git merge main
를 입력해줍니다.그러면 아래와 같이 해결되지 않은 conflict가 존재한다고 알려줍니다.그러면 우리는 IDE로 들어가 문제가 생긴 파일의 Conflict를 제거해주면 됩니다.
- 충돌 부분을 정리한 다음 해당하는 브랜치에서 다시 add, commit 진행를 진행해주면 됩니다.
- 이후 다시 main 브랜치로 checkout하고
git pull real-repo main
를 통해 up-to-date를 확인합니다. - 마지막으로 다시 develop 브랜치로 checkout하고
git pull origin main
을 해서 up-to-date를 확인합니다.