<aside> 💡

fast-forward 병합이 불가능할 때 나타나는 메시지인데, 원인과 해결 과정을 정확히 이해하면 부담 없이 대처할 수 있다.

</aside>

1. 의미


“Not possible to fast-forward”는

현재 브랜치와 병합 대상 브랜치 사이에 직선으로 연결할 수 없는 커밋 이력이 있어서 fast‐forward 방식으로 병합할 수 없다는 뜻이다.

Git이 기본적으로 fast‐forward만 허용하도록 설정된 상태에서 이 상황이 발생하면, 병합을 중단(abort)하고 위 메시지를 출력한다. (git pull or git merge)

2. 발생 원인


git config pull.ff only 를 통해 pull의 기본 옵션을 ff-only로 설정해놓은 경우 발생할 수 있는 에러다.

pull하려는 원격저장소의 브랜치와 로컬저장소의 브랜치가 fast-forward 관계가 아닐 때에 발생한다. 원격저장소의 새로운 commit이 존재하는데 git pull을 하지 않은 상태에서 로컬저장소에 새로운 commit을 했다면 해당 에러가 발생할 것이다.

2-1) 서로 다른 커밋 이력

2-2) -ff-only 설정