본문 바로가기
버전관리/GIT_HUB

레포지토리 다른 계정으로 이전하기 (Github Respository Transfer)

by joa-yo 2023. 12. 6.
반응형

안녕하세요! 오늘은 다른 사용자 계정으로 레포지토리를 옮겨보려고 합니다. 원래는 공개하려고 했던 소스였는데, 개발하고보니 보안상 공개할 수 없어서 개발 계정에서 개인계정으로 레포지토리를 옮기며 했던 과정들을 정리해보려고 합니다. 원래 레포지토리가 있는 계정을 A계정, 레포지토리를 이전 받으려고 하는 계정을 B계정이라고 하고, 이전 과정을 설명해보겠습니다.


레포지토리 이전하기

 

다른 사용자 계정으로 레포지토리를 이전하는 과정은 매우 간단합니다. 먼저 A계정의 이전하려고 하는 레포지토리의 Settings > General에 들어가주세요. 페이지 제일 하단에 Danger Zone에 Transfer가 있습니다. 소유권을 이전하는 기능으로 기존 레포지토리의 관리 권한 및 저장소 기능 모두를 이관할 수 있습니다. B계정에는 레포지토리명이 동알한 것이 있으면 이전할 수 없으니 미리 확인 후 Transfer 버튼을 눌러 이전을 진행합니다.

 

↓ ↓ ↓ 자세한 내용은 아래의 공식 문서를 확인해주세요.

https://docs.github.com/ko/repositories/creating-and-managing-repositories/transferring-a-repository

 

리포지토리 전송 - GitHub Docs

When you transfer a repository to a new owner, they can immediately administer the repository's contents, issues, pull requests, releases, projects (classic), and settings. You can also change the repository name while transferring a repository. For more i

docs.github.com

 

 

 

 

새로운 사용자를 선택하는 옵션이 두가지가 있습니다. B계정은 조직으로 관리되지 않는 계정이므로 두번째 옵션을 사용하여 지정하겠습니다. 옵션을 선택하고 B계정의 사용자명을 입력해주세요.

 

하단의 confirm 텍스트를 입력하고 우측 하단에 transfer 버튼을 눌러 레포지토리를 이전해주세요. 이후 B계정의 메일함에 들어가면, 이전 레포지토리 이전 확인메일이 도착해있을 것입니다. 확인 링크를 클릭하여 소유권 이전을 마무리해주세요.

 

 

 

레포지토리 이전 완료

이제 B계정에서 이전된 레포지토리를 확인해주세요. 최근 업데이트 이력과 커밋 이력 모두 이전되었습니다.

 

이전은 끝났지만 로컬의 working directory는 A계정으로 설정되어 있고, A계정의 원격 레포지토리와 연결되어 있습니다. 계속해서 작업이 필요하기 때문에 추가적인 설정이 필요합니다.

 

 

 

GIT 설정 변경

A계정으로 설정되어 있는 원격저장소 정보와 git 설정을 모두 B계정으로 바꿔보겠습니다. 이렇게 하면 IDE에서도 워크 스페이스를 변경할 필요 없고 소스 파일의 변경 이력을 그대로 보존할 수 있다는 장점이 있습니다.

 

변경해주어야 하는 항목

  • git config
  • git remote
  • 자격증명

로컬에 설정된 깃 계정설정 변경하기(git config)

## 현재 설정 내용 확인
$ git config user.name
[A계정 출력]

## 변경
git config user.name [B계정]

## 변경 내용 확인
$ git config user.name
[B계정 출력]

git config명령을 사용하여 사용자명을 변경합니다. 이와 동일하게 user.email도 변경합니다.

 

원격 레포지토리 주소 변경하기(git remote)

$ git remote remove origin

$ git remote add origin https://github.com/[B계정 사용자명]/[레포지토리명].git

기존 원격 저장소를 제거하고 새로운 원격 저장소로 변경합니다.

 

자격증명 변경 - github 계정정보 변경

 

먼저 기존에 저장되어 있는 자격증명을 삭제해주겠습니다. Windows 자격증명 탭에서 깃허브 주소를 찾아줍니다. A계정으로 설정되어 있는 이 자격증명을 제거 버튼을 클릭하여 삭제해줍니다.

 

$ git fetch
From https://github.com/[B계정 사용자명]/[레포지토리명]
 * [new branch]      master     -> origin/master

 

이제 새로운 자격증명을 등록해보겠습니다. pull이나 push가 아닌 fetch를 사용해주어야 자격증명을 등록할 수 있습니다. 워크스페이스 경로에서 git fetch명령어를 실행합니다.

 

그럼 새로운 창에 위와 같은 새로운 창이 뜨는데요, Sign in with your browser 버튼을 클릭하고 브라우저에서 로그인을 완료해줍니다. 

 

확인하기

$ git pull origin master
From https://github.com/[B계정]/[레포지토리명]
 * branch            master     -> FETCH_HEAD
Already up to date.

git pull 명령어를 사용해서 pull 명령어를 사용해봤는데, 정상적으로 pull 명령어가 동작하는 것을 확인할 수 있었습니다.

 


마무리하며

레포지토리 정리를 해야지 해야지 하다가 드디어 정리하니 뿌듯하네요. 누군가에게도 도움이 되길 바랍니다. 감사합니다!

반응형

댓글