작업하다가 git pull origin dev 를 내려받을 때 종종 Not possible to fast-forward, aborting. 에러가 뜨곤 합니다. 이 에러가 뜰 때 마다 git pull -f -u origin dev 로 그냥 내려받곤 했는데 이제서야 그 원인을 알아내서 쓰는 아주 간단하고도 간략한 포스팅이 되겠습니다 큼큼.
한 줄로 요약을 해보자면,
이미 커밋하고 push 한 내용이 내려받으려는 브랜치에 머지되지 않아서 발생했습니다.
이게 무슨 말이냐면요!
내려받으려는 브랜치: dev
commit, push 한 브랜치: dev-practice 라고 할 때
dev <- dev-practice 가 머지되지 않고 그냥 브랜치에만 올라가 있거나 pr만 된 상태일 경우에 발생했습니다. 내 로컬에는 있는 파일인데 받아오려는 브랜치에는 없는 파일이기 때문에 발생한 것이죠!
고로 어떤 브랜치가 머지가 안된 것인지 파악이 어렵거나 (이래서 그날그날 작업한 파일은 그날그날 올려둬야하나봐요) 등등의 이유로 pull 이 안될 때는 git pull -f -u origin dev와 같은 방법으로 일단 pull 을 받아올 수도 있습니다! git pull origin dev --rebase 도 사용했었지만 이 경우에는 나중에 다시 push 할 때 또 다른 명령어를 사용해줘야 했던 것으로 기억을 합니다.. 무튼 번거로웠던 느낌이랄까요.
쨋던 오늘의 결론 커밋해서 push 한 파일을 제때 제때 pr 하고 merge 해서 내려받으려는 브랜치에 커밋한 브랜치 파일이 존재하도록 하자!