원격 브랜치를 pull 할 때 발생하는 fast forward 에러 - prgrms-web-devcourse/Team_Alchomist_ShakeNMatch_FE GitHub Wiki
Fast-forward 가 뭐길래 이렇게 나를 괴롭히는 걸까?
링크1와 링크2를 참고하여, fast forward 방식의 병합원리에 대해 조사해 보았다.
fast-forward 병합 방식은, 내가 병합하고자하는 브랜치와 병합되는 대상 브랜치가 일련의 커밋 흐름으로 이어질 수 있을 때 행할 수 있는 병합 방식이다. 가령,

와 같은 상황에서 master에서 분기된 브랜치를 머지하고자 하면, master가 변하지 않았다는 전제 하에, master 브랜치의 끝을 분기된 브랜치와 동일한 곳으로 '끌어오는(빨리감기, fast-forward)'해오는 것만으로도 병합을 처리할 수 있다. 왜냐하면 병합하고자 하는 브랜치가 병합 타겟 브랜치의 히스토리를 온전히 포함하고 있기 때문이다. 그리고 단순히 포인터를 변경하는 것이기 때문에, commit 이력에는 merge commit이 남지 않는다.
이것이 fast-forward이다.
그러면 내 경우는 어땠는가?

develop 브랜치에서 분기한 feat/SM-74/CocktailReviewModal ('칵테일리뷰모달 브랜치'라 칭하겠다)을 develop을 풀을 받지 않으면서 계속 작성하다 보니 어느새 'develop'과 '칵테일리뷰모달 브랜치'는 다른 커밋 이력을 가지게 되었다.
완전히 다른 가지로 뻗어나가게 된 것이다. 심지어 다른 기능 브랜치에서 develop 으로 병합되는 경우도 발생하였다. 마치 아래 그림처럼 말이다.

그러면 어라라...앞서 말한 fast-forward 방식의 develop pull 도 불가능 한 것이다.
해결방법
git pull origin develop --no-ff/ git pull origin develop --rebase를 진행하면 된다.