git

Fatal: Not possible to fast-forward, aborting / fatal: 정방향이 불가능하므로, 중지합니다.

알면 알 수록 재밌다! 2023. 7. 17. 12:52
Fatal: Not possible to fast-forward, aborting.
fatal: 정방향이 불가능하므로, 중지합니다.

요약하자면,

 

fast-forward만 하겠다는 것이다. 이 경우 merge가 불가능하고, merge가 필요한 경우에는 정방향으로 진행하는 게 불가능해서

에러 메시지가 뜨면서 진행을 하지 않는 것이다.

 

 

중간에 다른 커밋이 껴있을 때 동작을 안한다는 것이다.

https://kotlinworld.com/277


해결방법1

 

그래서 문제를 근본적으로 해결하려면 fast-forward only 옵션을 꺼야 한다. 아래 명령을 내려서 끈다.

git config --unset pull.ff

해결방법2

 

다른 방법으로는 다른 브런치에서 코드를 받아와서 그 브런치와 머지를 시키는 것이다.

git switch {pull 받을 branch B} 
git pull origin {위 branch(B)}
git switch {내가 기존에 작업하던 branch(A)}
git merge {B branch}

위처럼 해결을 할 수도 있다.


해결방법3

 

soft reset을 시켜서 이전 커밋으로 돌아간 뒤, pull을 받아서 변경사항을 받고, 내가 한 커밋을 다시 커밋하는 것이다.

# 소프트 리셋으로 원하는 커밋으로 돌아간다.(soft reset은 내가 코드 작성한게 안사라지니 걱정 ㄴㄴ)
git reset --soft {github commit id}

# pull 받아 변경사항을 받아들인다.
git pull origin {원하는 브런치명}

# 내가 작성했던 커밋이 돌아갔지만, 코드 작성한 것은 staging에 남아있다. 다시 커밋을 작성한다.
git commit -m "쏼랴쏼랴~"

 

 

 


참고

 

fast-forward only 블로그

https://mytory.net/archives/13122

 

soft reset 블로그

https://www.devpools.kr/2017/02/05/%EC%B4%88%EB%B3%B4%EC%9A%A9-git-%EB%90%98%EB%8F%8C%EB%A6%AC%EA%B8%B0-reset-revert/