git 리포지토리를 GitLab에서 GitHub로 옮길 수 있습니까?


204

필요한 경우 GitLab에서 GitHub로 리포지토리를 전송할 수 있습니다. 그렇다면 어떻게 정확히 똑같이 할 수 있습니까?

또한, 프로젝트를 수행하는 데 도움이 될 수있는 더 많은 기능이 있기 때문에 결국 GitHub로 옮길 것을 결정할 수 있기 때문에 명심해야 할 예방 조치 또는 예방 조치에 함정이 있습니까? ).

답변:


210

그것들을 전송할 수 있습니다 (간단히 GitHub 저장소에 리모컨을 추가하고 밀어서)

  • GitHub에서 빈 저장소를 만듭니다.
  • git remote add github https://yourLogin@github.com/yourLogin/yourRepoName.git
  • git push --mirror github

역사는 같습니다.

그러나 액세스 제어 (리포지토리에 대한 특정 액세스 권한을 가진 GitLab에 정의 된 팀)를 잃게됩니다

GitHub 리포지토리의 https URL에 문제가있는 경우 :

The requested URL returned an error: 403

GitHub 비밀번호를 입력하기 만하면되지만 OP는 다음을 제안합니다.

그런 다음 ssh 방식으로 밀어야 할 수도 있습니다. 자세한 방법은 여기를 참조하십시오.

" Git으로 푸시 오류 코드 403 치명적 : HTTP 요청 실패 "를 참조하십시오.


Thanks Von-귀하의 답변이 나를 위해 트릭을 수행했습니다. 정확한 git remote add cmd 및 필요에 따라 ssh 방식으로 밀어 넣는 것과 관련하여 귀하의 답변에 약간의 정보를 추가했습니다. 괜찮습니다.
boddhisattva

@boddhisattva 괜찮아요. 편집이 거부 된 것 같습니다. 나는 그것을 스스로 대답에 다시 추가했다.
VonC

5
이슈 및 라벨 가져 오기에 대한 의견이 있습니까? 당기고 밀어서 코드 이외의 다른 것을 가져올 수 있습니까? 감사.

@YakovK PR 및 문제를 고려한 자동 프로세스를 인식하지 못합니다. 적어도 GitHub의 PR은 브랜치 ( stackoverflow.com/a/30542987/6309 참조 )이므로 가져올 수 있습니다.
VonC

1
@kiki는 모든 로컬 브랜치 를 푸시 하지만 로컬 리포지토리 자체가 복제 본인 경우 기본 로컬 체크 아웃 브랜치로 마스터 만 갖습니다. 을 사용하기 전에 먼저 해당 원격 추적 분기 후에 다른 로컬 분기를 작성해야합니다 push --mirror. stackoverflow.com/a/18911322/6309 . stackoverflow.com/a/24099141/6309 에서 언급 된 대안을 참조하십시오 (마지막 문장)
VonC

149

가져 오기 저장소 기능으로 로그인하는 것은 매우 쉽습니다 github.com.

프로필 사진 측면에서 +버튼을 클릭하면 옵션이 나타납니다 import repository. 이 같은 페이지를 찾을 수 있습니다. 여기에 이미지 설명을 입력하십시오 귀하의 경우 gitlab repo url 인 이전 저장소의 복제 URL이 필요합니다. 그런 다음 소유자를 선택한 다음이 저장소의 이름을 입력하고 클릭하여 가져 오기 시작 단추를 클릭하십시오.


33
GitHub가 추가 한 것이 매우 편리합니다. 그러나 방화벽 뒤에있는 내부 GitLab 인 경우 작동하지 않습니다. 이는 GitLab의 큰 사용 사례를 나타냅니다.
abalter 2016 년

7
가져 오기 옵션을 사용하는 다른 사람을위한 간단한 참고 사항입니다. 이것이 작동하려면 GitLab에서 MFA를 비활성화해야했습니다.
D-Day

2
이것은 잘 작동합니다. 허용 된 답변보다 훨씬 낫다
LnxSlck

지점을 가져 오려면 어떻게합니까?
coderInrRain

1
github에서 개인 저장소를 무료로 추가했기 때문에 가져온 저장소를 반드시 공개 할 필요는 없습니다.
Shrey Garg


7

나는 반대의 문제가 있었고 마침내 회사 정책의 변화로 인해 회사가 수백 개의 저장소를 Github에서 Gitlab으로 마이그레이션하기 위해 자체 bash 쉘 스크립트를 만들어야했습니다.
스크립트는 Gitlab API를 사용하여 원격으로 리포지토리를 생성하고 Github 리포지토리를 리포지토리로 푸시합니다. README.md 파일은 아직 없지만 sh는 잘 문서화되어 있습니다.
내가 상상하는 것과 똑같은 일을 할 수 있습니다. 이것이 도움이되기를 바랍니다.
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh


2

GitLab에서 MFA를 활성화 한 경우 리포지토리 설정 / 리포지토리-> 배포 키로 이동하여 키를 생성 한 다음 GitHub에서 리포지토리를 가져 오는 동안이 키를 로그인으로 사용해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.