반응형

내 remote와 실제 원격의 remote의 일치점이 아예 없으면 

git fetch, git pull, git remote update 어떤 걸 시도해도 다음과 같이 에러가 남

 ! [rejected]        master     -> origin/master  (non-fast-forward)

 

  • 여기서 중요한건 fetch도 에러가 난다는 것 fetch도 일종의 merge? origin/remotes와 내 로컬의 remote를 merge하는 것???? 근데 정상이라면 항상 fast forward merge만 이루어짐. 내가 remote를 수정할 일이 없기 때문
  • fetch는 remote의 최신을 FETCH_HEAD라는 이름으로 가져오는 것인데, 기존 remote와 상관없이 별도로 가져오는 것은 아님- 만약 그렇다면 이렇게 non-fast-forward라는 이름으로 에러가 날 일이 없음
  • 즉 fetch는 fast-forward merge만 하는 merge라는 것! 근데 fast-forward가 안되니까 non-fast-forward error발생

 

만약 누군가가 push --forced option을 사용해서 push를 했다면 그걸 pull받는 입장에서는 위 에러가 날수 밖에 없음

--force push를 했다는 것 자체가 이전에 순차적으로 쌓인 history를 무시하고 다른 걸 넣은 것이므로

 

https://velog.io/@rain98/%EA%B9%83%ED%97%88%EB%B8%8C-non-fast-forward-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0

 

깃허브 non-fast-forward 에러 해결하기

깃허브 non-fast-forward 에러 해결하기

velog.io

 

반응형

+ Recent posts