본문 바로가기
테크 세미나/개발 Nous

gitlab 에서 한 작업들을 github 으로 가져오기 (gitlab 잔디 옮겨심기)

by Junmannn 2024. 6. 14.
반응형

GitHub에 Gitlab 잔디 연동

회사마다, 프로젝트마다 github 을 쓸 수도 있고, gitlab 을 쓸 수도 있습니다. 그런데 이렇게 하다보면 내 잔디심기가... 일정 구간이 펑 빠지는 느낌이 들 수 있겠죠. 깃허브에서 볼 때에 gitlab 으로 관리했던 기간이 공백기처럼 보이는 탈모 구간을 채워보는 시간을 가져보도록 하겠습니다

 

 

내 Github 에 들어가서 우측 상단 프로필을 클릭합니다. Your repositories 로 이동, New 를 눌러 새로운 저장소를 만들어 두겠습니다

 

저장소의 이름을 입력하고, private 으로 만들도록 합니다. 저는 간단하게 mirroring 이라고 하겠습니다. gitlab 에 있는 저장소를 미러링을 하는 작업이라 이름을 그렇게 지어봤습니다ㅎㅎ

 

이제 깃랩으로 이동해보겠습니다

https://gitlab.com/

 

The most-comprehensive AI-powered DevSecOps platform

From planning to production, bring teams together in one application. Ship secure code more efficiently to deliver value faster.

about.gitlab.com

깃랩에 들어가셔서 로그인을 하시면 진행하셨던 프로젝트들이 보이실 것입니다.

해당 프로젝트를 클릭해 들어가줍니다.

해당 프로젝트에서 좌측 Settings - Repository 로 이동합니다

 

여기서 Mirroring repositories - Expand - Add new 를 선택합니다

repository 주소에는 깃허브 에서 방금 private 으로 만들었던 repo의 이름을 사용합니다

https://(깃허브로그인용이름)@github.com/(깃허브로그인용이름)/(레포이름).git

 

Password 에는 깃허브 토큰을 넣으면 됩니다

 

Github 토큰을 만드는 방법

https://github.com/settings/tokens/new

 

 

Expiration 은 본인의 사용 용도에 맞게 변경하시면 됩니다!! 이렇게 해서 나온 access token 을 다른 곳에 적어두고 복사합니다

 

만일, gif 나 어떤 파일들이 50m 를 넘어가서, gitlab 에는 들어가있었지만 github 에는 못옮기는 그러한 현상이 발생하고 있다면, 해당 파일만을 지운다고 해결이 되는 문제는 아닙니다. 기록이 전부 남아있기 때문입니다ㅎㅎ

추천을 드리지는 않지만, 굳이 필요하시다면 방법을 알려드리겠습니다

 

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <파일 경로>" --prune-empty --tag-name-filter cat -- --all

 

이후 넣어보겠습니다

git push origin --force

이 과정을 하시면 해당 파일에 대한 모든 히스토리가 삭제됩니다.

 

여기서 혹시나 또 --force 를 할 수 없다고 하면 해당 프로젝트 클릭 - Settings - Repository - protected branches - Allowed to force push  하시면 됩니다. 전부 처리가 되었다면 이제 Mirroring repositories 를 다시 해봅니다

 

확실히 달라진 것을 확인할 수 있습니다!

반응형