반응형
어찌하다 보니 Gitlab repository에서 약 30여 개 프로젝트를 Github 리파지토리로 마이그레이션 하는 경우가 생겼습니다.
일단은 기존 저장소를 복제합니다.
git clone --bare {복제할 저장소주소}
그 후 복제한 저장소의 폴더로 접근해
cd {복제할 저장소주소}
새로 옮길 저장소로 이동시킵니다.
git push --mirror {옮길 저장소주소}
이렇게 여러 개의 리파지토리를 옮기는 쉘 스크립트를 작성한 후 실행 시킬 수 있습니다.
* 한 번 clone 하여 push 하면 그 이후에 재실행하면 변경된 부분만 push 할 수 있습니다.
이렇게 옮기는 와중에 특정 몇몇 리파지토리가 push 할 때 다음과 같은 오류메시지와 함께 push 가 되지 않았습니다.
[remote rejected] ***** (failure)
오류메시지는 명확하지 않았고, 구글링을 해봐도 구글상태에 관한 이야기만 많았습니다.
제가 해결한 방법은 다음과 같습니다.
문제 1.
옮겨야할 브랜치가 적은 리파지토리는 오류가 발생하지 않고 브랜치가 많은 리파지토리에서만 오류가 발생하였습니다.
이미 main 브랜치에 병합되어 더 이상 사용하지 않는 아주 오래된 브랜치들을 정리하기 시작했습니다.
이후 다시 push를 하니 정상적으로 되었습니다.
문제 2.
하지만 특정 리파지토리는 사용하지 않는 브랜치 수가 적어졌는데도 불구하고 push 되지 않았습니다.
남아있던 브랜치 중 사용하지 않는 보호된 브랜치가 있는 것을 발견하고 이미 사용하지 않는 걸 확인하고 이상하다 싶어 제거했더니
정상적으로 push 가 되었습니다.
혹시 다음에 고생하실 다른 분들을 위해 글로 남깁니다.
반응형
'인프라 > GIT' 카테고리의 다른 글
GIT 명령어 정리 (0) | 2022.08.11 |
---|