gitpush 실패, unpack error/unpackfailed 해결 방법 제시

[문제 설명] 명령을 실행하고 있습니다git commit --amend 제출을 수정한 후에 집행한다git push review HEAD:refs/for/xxxx 코드를 Gerrit에 제출했지만 제출에 실패하고 다음과 같은 알림을 출력합니다.
qidi.huang@droid10$ git push review HEAD:refs/for/xxxx

Writing objects: 100% (1/1), 258 bytes | 0 bytes/s, done.  
Total 1 (delta 0), reused 0 (delta 0)  
error: unpack failed: error Missing tree a0abf7e9827e74b7d729485fcd3714bc6a1ce898  
fatal: Unpack error, check server log  
To ssh://[email protected]:29418/kernel/common  
 ! [remote rejected] HEAD -> refs/for/xxxx (n/a (unpacker error))   

[해결 방법] 우리는 제출할 때 추가할 수 있다--no-thin 매개 변수로 이 문제를 해결한다. 즉, 아래와 같은 명령을 사용하여 제출하면 된다.
$ git push --no-thin review HEAD:refs/for/xxxx

이 매개 변수의 의미는'서버에 코드를 제출할 때 정보를 압축 처리하지 않는다'는 것이다. 명령을 실행한다git push --help 설명 정보를 볼 수 있습니다.
--[no-]thin
    These options are passed to git-send-pack(1). A thin 
transfer significantly reduces the amount of sent data when 
the sender and receiver share many of the same objects in 
common. The default is --thin.

[문제 원인] 구체적인 실패 원인은 Gerrit 서버의log에서 분석해야 한다. 나는log를 보지 않았다. (나도 권한이 없는 것 같다.) 그러나 다른 동업자의 분석에 의하면 이 문제는 "Gerrit와git가 호환되지 않아서 일어난 것이다. 구체적인 원인은 Gerrit가 제출할 때 Gerrit에서 닫지 않은review 요청을 생성했지만 이 요청은 그 어떠한 제출에도 속하지 않는다."[참고 자료] [1]'git flow와 gerrit[2]'Git push error: unpack failed: index-pack abnormal exit'

좋은 웹페이지 즐겨찾기