Fatal: Not possible to fast-forward, aborting.
fatal: 정방향이 불가능하므로, 중지합니다.
요약하자면,
fast-forward만 하겠다는 것이다. 이 경우 merge가 불가능하고, merge가 필요한 경우에는 정방향으로 진행하는 게 불가능해서
에러 메시지가 뜨면서 진행을 하지 않는 것이다.
중간에 다른 커밋이 껴있을 때 동작을 안한다는 것이다.
해결방법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 블로그
'git' 카테고리의 다른 글
Github actions에서 Secrets로 환경변수 관리 (0) | 2024.04.18 |
---|---|
한 컴퓨터에서 여러 깃허브 계정 사용하기 (2) | 2023.11.14 |
깃허브 리뷰 코멘트 템플릿 사용하기 (0) | 2023.11.01 |
git pull 받지않고 원격 저장소의 새 branch 가져오기 (0) | 2023.05.15 |
깃허브 reset 명령어 (0) | 2023.05.08 |