Programing

큰 github 저장소를 푸시하면 "unable to push to unqualified destination : master"로 실패합니다.

lottogame 2020. 12. 1. 07:32
반응형

큰 github 저장소를 푸시하면 "unable to push to unqualified destination : master"로 실패합니다.


큰 git repo (SVN repo에서 생성됨)가 있고이를 github에 푸시하고 싶습니다. 크기가 크면 "pack too large"오류로 실패하므로 직접 푸시 할 수 없습니다.

지금까지 모두 좋아, 한 번에 하나의 커밋을 repo로 푸시 할 수 있습니다. 하지만 이렇게하려고하면 다음과 같은 결과가 발생합니다.

git push origin 86c310d8a680d6d0e052fa7db89adb25348f3e54:master
error: unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.

따라서 원격 저장소에는 아직 마스터 브랜치가 없지만 푸시하려고하는데 실패합니다.

이 문제를 어떻게 해결합니까? 아니면 원격에서 빈 마스터 브랜치를 생성하여 푸시 할 수 있습니까?


로 푸시합니다 refs/heads/master. 이번 한 번만하면됩니다.

git push origin whatever:refs/heads/master

그러면 브랜치로 모호하지 않게 생성되며 나중에 정상적으로 푸시 할 수 있습니다.

이것은 master라는 원격 참조가 없기 때문에 작동합니다 (아직 생성되지 않았습니다), 대상 참조는 refs /로 완전히 정규화되지 않았으므로 git은 그것을 기반으로 알아낼 수 없으며 소스 참조는 해시입니다. 이름이 아니라 그것으로도 알아낼 수 없습니다. refs / heads / master로 푸시하면 두 번째 조건이 참이기 때문에 작동하고 나중에 마스터가 원격에 존재하므로 첫 번째 조건이 참이됩니다.


다음을 사용하여 새 분기를 만들 수도 있습니다.

git checkout -b branchName

그런 다음 git 저장소를 해당 분기로 푸시하십시오.

git push origin whatever:branchName

이것은 나를 위해 일했습니다 : github UI에서 원격 분기를 만든 다음 동일한 이름을 가진 로컬 분기를 푸시했습니다. 다른 방법이 작동하지 않을 경우에 대비해보십시오. 다른 방법은 로컬에서 새 브랜치를 생성하고 빈 브랜치를 푸시 한 다음 나중에 커밋을 선택하고 원격으로 다시 푸시하는 것입니다.

유사한 문제도 확인하십시오. 원격 git 분기를 삭제할 때 "오류 : 비정규 대상으로 푸시 할 수 없습니다"


나는 이와 동일한 오류가 있었고 내 지점의 이름을 잘못 입력했음을 발견했습니다. 따라서 대문자 등이 올바른 위치에 있는지 확인하기 위해 지점 이름을 두 번 확인할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/28417845/pushing-a-large-github-repo-fails-with-unable-to-push-to-unqualified-destinatio

반응형