프리프로젝트로 깃&깃허브를 팀원분들과 사용하게 되었습니다.
팀 단위 작업은 처음이라 conflict처리도 처음으로 해결하게 되어서 기록으로 남깁니다!
git pull
을 받는데 위와 같은 에러가 발생했습니다.
로컬 리포지토리의 변경 사항과 원격 리포지토리의 변경 사항 간에 충돌이 있으며 Git이 자동으로 병합할 수 없음을 나타낸다고 합니다.
뭐가 문제일지 생각을 해보니 어제 팀원분이 수정하고 remote에 올리신 스프링 부트의 .yml
파일을 pull
받을 때 제가 이미 local에서 .yml
을 수정해놔서 conflict가 난 걸 수정하고 git add
와 git commit
을 처리해주지 않았구나! 싶었습니다.
그래서 git status
를 보면 아래와 같이 both modified
가 보입니다.
<<<<<<< HEAD
Changes made in your local repository
=======
Changes made in the remote repository
>>>>>>> [commit SHA from remote repository]
<<<<<<< HEAD
는 로컬 변경의 시작을 나타내고 >>>>>>>
는 원격 저장소에서 변경의 끝을 나타냅니다 =======
는 충돌하는 변경 사항을 구분합니다.
팀원분과 상의 후 로컬을 남길거면 로컬 코드만, 원격을 남길거면 원격 코드만, 둘 다 남길거면 <<<
, ===
, >>>
표시만 지우고 저장합니다.
# 원격 코드만 남긴 예시
Changes made in the remote repository
후에 충돌된 부분 수정 반영으로 git add
와 git commit
을 해주면 됩니다.
git add both_modified파일명
git commit -m "커밋메시지"
다시 git status
를 해주면 both modified파일이 사라진걸 확인할 수 있습니다.
즉, merge가 정상적으로 마무리 되었습니다.