원인
- 로컬 브랜치가 원격 브랜치 보다 이력이 뒤쳐져 있어 발생 되는 문제
(Git이 익숙치 않아 솔직히 왜 최신의 로컬 브랜치가 원격 브랜치 보다 뒤쳐진건진 이해하지 못하겠다)
- 또는 원격 브랜치가 로컬 브랜치와 충돌하는 변경 사항을 가지고 있었을 경우.
(원격 브랜치에 적용 돼 있지 않았던 gradle 의 변경 사항 같은 것들이 로컬 브랜치에 존재 했는데 아마 이 때문이지 않을까 싶다. 앞으로 해당 문제가 재발생 된다면 다시 한번 두가지 문제를 고려해봐야겠다.)
해결 방안
- git push origin +main
우선 이렇게 '+'를 붙여 처리 했다.
지금이야 개인 프로젝트다 보니 간단하게 해결 했다만, 위의 명령어는 원격 저장소의 main 브랜치를 강제로 업데이트 하기 떄문에 일반적으로 권장 되는 방법은 아니다.
변경 사항을 강제로 푸시해야할 상황이 있어선 안되며 이러한 충돌이 있을 경우엔 충동 해결이 우선 돼야 한다.
(그러니까 차단기 떨어졌다고 그냥 올려 사용하지 말고 누전이나 또 다른 문제 해결이 우선시 된 후 차단기 올려 써라 이말)