git push origin main

알고리즘 문제를 풀고 평소처럼 커밋하고 push하려 하니 이런 오류가 떴다.
확인해보니 "백준허브"를 통해 문제를 풀 때 자동 커밋이 되었고, 내 로컬에는 그 커밋 기록이 없어서 생긴 문제로 이해했다.
그럼 main branch로부터 pull을 하면 될까?
git pull origin main

이런 오류가 떴는데, 대충 pull하기 전에 저기 보이는 3가지 옵션 중 하나를 선택하라는 내용이다.
각 옵션이 어떤 기능을 하는지 확인해보자.
가장 기본적인 pull방법으로, 원격 저장소의 최신 커밋을 가져온다. 원격 저장소에만 새로운 커밋이 있을 때는 해당 명령어가 동작할 것이다.
원격 저장소의 최신 커밋에 로컬 저장소의 최신 커밋을 merge한다.
merge하고자 하는 두 브랜치의 커밋 이력을 모두 관리할 수 있다.

서로 충돌(conflict)이 발생할 수 있다.
git config pull.rebase true
위의 명령어를 통해 rebase merge 방식을 병합 기준으로 설정할 수 있다.
pull 하려는 원격저장소의 브랜치와 로컬저장소의 브랜치가 fast-forward 관계일 때만 pull을 허용한다.

git config pull.ff only
위의 명령어를 통해 fast-forward merge 방식을 병합 기준으로 설정할 수 있다.

나의 경우는 로컬, 원격 저장소에 모두 새로운 커밋이 있는 상황이어서 rebase를 이용했다.

백준허브의 원격 저장소 커밋들 위에 로컬 저장소의 커밋 내용이 생긴 것을 확인할 수 있다. 이제 정상적으로 원격 저장소에 push할 수 있다.
