[git] git pull error : remote ref is at xxx but yyy expected |
-
git pull 을 수행하다보면 종종 "git pull error : remote ref is at xxx but yyy expected" 의 에러를 내뱉으며 pull 이 실패하곤 한다.
xxx, yyy 는 hash 값이고, 실상 저 에러는 git fetch 과정에서 발생한다.
그런데 이 에러가 영구적이지 않고, 에러 발생 이후 다시 pull 을 시도하면 다시 잘 작동한다...
-
이 에러가 발생하는 이유 중 하나는 누군가가 repository 의 history 를 git push --force 로 해서 tree 를 망가뜨렸기 때문이라고 한다. (stackoverflow 의 답변 참고)
-
또 다른 이유 중 하나는 case sensitive 하지 않은 file system 에서 대소문자를 다르게 썼을 때 발생한다고 한다.
예를 들어 abc branch 를 ABC 로 바꾼 경우 이런 에러가 발생한다고 한다.
이것이 원인일 경우 .git/config 에 ignorecase = true 설정을 주면 된다고 한다.
-
필자의 경우는 다시 pull 했을 때 이슈가 해결되었지만, 해결되지 않는다면 다음의 방법들을 추천한다.
아래 단계는 순차적으로 적용이 아닌 선택적으로 하나를 적용한다.
1.
$ git remote prune origin
2.
.git/refs/remotes/origin folder 를 제거한 후 다시 pull 시도
3.
$ git update-ref -d refs/remote/origin
4.
$ git gc --prune=now
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
Open Source Software License 들 간단 정리 (0) | 2020.12.25 |
---|---|
[git] Git Prune 에 대해 알아보자 (0) | 2020.03.06 |
[git] fetch 하기 & pull 하기 (0) | 2020.03.04 |
[git] 수정 사항 되돌리기 ( stage to unstage, reset modifed ) (0) | 2020.03.03 |
[regex] Possessive quantifier 에 대해 알아보자. (0) | 2020.02.29 |
댓글