Git 저장소 복사하기

G

AWS CodeCommit을 이용해 프로젝트를 관리하던 중 문제가 생겨 저장소를 이전해야 하는 상황이 생겼습니다.

문제점

개인적으로 사용 중인 저장소와 회사에서 사용 중인 저장소의 리전이 동일하여 계정을 변경하려면 소스트리 인증 정보와 키체인에 등록된 정보를 삭제 후 재인증을 거쳐야 합니다.

해결하기

동일한 리전에 다수의 계정을 인증하는 방법을 찾지 못하여 리전을 분리하여 개인적으로 사용 중인 저장소를 히스토리까지 이전하려고 합니다.

$ git clone --mirror https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/project
Cloning into bare repository 'project.git'...
remote: Counting objects: 1855, done.
Receiving objects: 100% (1855/1855), 207.02 MiB | 10.03 MiB/s, done.
Resolving deltas: 100% (997/997), done.
$ ls
project.git
$ cd project.git/
$ git remote set-url origin https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/new_project
$ git push --mirror
Username for 'https://git-codecommit.ap-northeast-1.amazonaws.com': INPUT_USER_NAME
Password for 'https://YOUR_USER_NAME@git-codecommit.ap-northeast-1.amazonaws.com': INPUT_USER_PASSWORD
Enumerating objects: 1855, done.
Counting objects: 100% (1855/1855), done.
Delta compression using up to 8 threads
Compressing objects: 100% (819/819), done.
Writing objects: 100% (1855/1855), 207.02 MiB | 4.57 MiB/s, done.
Total 1855 (delta 997), reused 1855 (delta 997)
remote: processing ..
To https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/new_project
 * [new branch]      master -> master

저장소 복사하기

우선 mirror 옵션을 사용하여 기존 저장소의 모든 이력을 복사합니다.
$ git clone –mirror 기존 저장소 경로

작업이 완료된 후 해당 경로를 확인하면 저장소이름.git 폴더가 생성되어 있습니다.

저장소 경로 변경하기

다음으로 복사된 저장소 폴더로 이동하여 작업을 이어갑니다.
$ cd 저장소이름.git

현재 리모트 저장소의 경로를 변경합니다.
$ git remote set-url origin 신규 저장소 경로

복사된 저장소 Push

마지막으로 mirror 옵션을 사용하여 경로를 변경한 저장소를 Push하고 AWS CodeCommit을 확인하면 기존 저장소에서 작업한 히스토리가 그대로 반영되어 있는 것을 확인할 수 있습니다.
$ git push –mirror

Add comment

By berabue

최근 글

글 목록

최근 댓글

그 밖의 기능