[Git] GitLab에서 GitHub로 미러링 / 파일 용량 많은 경우 / organization

예구·2023년 4월 26일
0
post-thumbnail

GitLab에서 팀 프로젝트를 진행했고, 이 코드를 GitHub로 옮기려고 한다.
한 사람이 organization을 생성해서 팀원들을 초대한 후, 미러링을 하면 더 효율적이라고 생각해서 그 방법을 작어보려고 한다.



1. GitHub에서 organization 생성하기

개인 계정으로 로그인한 다음 오른쪽 상단의 + 아이콘을 클릭한다.
New organization을 클릭한다.

단체 계정 생성이 진행된다.
먼저 플랜을 선택하는 화면으로 이동한다.
여기서 무료 플랜을 선택한다.
플랜은 나중에도 변경이 가능하다고 한다.

플랜을 선택하면 단체에 대한 정보를 입력하는 폼으로 넘어간다.
단체 이름(Organization account name)과 이메일(Contact email), 그리고 단체 소유주를 입력한다.
단체 소유주 타입은 크게 2가지로 나뉜다.

  • 현재 사용중인 개인 계정(My personal account)
  • 비즈니스나 기관(A business or institution)

비즈니스나 단체를 선택할 경우 별도로 공식적인 단체명을 입력하는 폼이 나타난다.

입력을 마치고 스크롤을 내리면 스팸 퀴즈를 풀어야한다.

확인을 눌러서 퀴즈를 풀면 된다. 퀴즈를 풀면 Next 버튼이 활성화된다. 클릭해서 다음으로 넘어간다.

이 검색창에서 GitHub ID를 입력하면 초대할 사용자를 검색하고 추가할 수 있다.
혹은 GitHub 계정(이메일)을 입력하면 초대할 사용자에게 이메일을 보내서 추가할 수 있다.
초대할 멤버를 모두 골랐다면 Complete Setup을 클릭한다.
초대는 나중에도 할 수 있으니 Skip this step을 눌러서 skip을 해도 좋다.

단체 계정 생성 완료!!



2. organization에 속한 repository 생성하기

Create a new repository를 클릭해서 새로운 repository를 생성한다.

repository 생성 폼의 Owner에서 organization을 선택하면 원하는 organization에 repository를 생성할 수 있다.



3. GitLab에서 GitHub로 미러링

  1. 터미널을 연다.
  2. 복사하고자 하는 저장소(GitLab)의 bare clone을 생성한다.
    $ git clone --bare <GitLab 주소>
  3. 새로운 저장소(GitHub)로 mirror-push
    $ cd old-repository.git
    $ git push --mirror <GitHub 주소>



4. 50MB를 넘어가는 크기의 파일을 지닌 repository 미러링

용량이 큰 파일이 있다면 미러링을 하다가 에러가 발생할 것이다.

나 또한 zip 파일과 mp4 파일이 있어서 위와 같은 에러가 발생했다.
해결방법은 아래와 같다.


4.1 BFG Repo Cleaner 설치

BFG Repo Cleaner는 이 링크를 통해 다운 받을 수 있다.

오른쪽에 파란색 버튼을 눌러서 다운 받으면 된다.


4.2 복사하고자 하는 저장소(GitLab)의 clone 생성

$ git clone --mirror <GitLab 주소>

4.3 다운받은 BFG Repo Cleaner 위치 옮기기

old-repository.git이 있는 위치에 다운 받은 bfg-1.14.0.jar이 있어야 한다.

$ ls
old-repository.git  bfg-1.14.0.jar

4.4 50MB 넘는 것 제거

$ java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 50M --no-blob-protection old-repository.git
  • 50MB 이상 파일을 업로드한 commit 로그를 지우는 명령어
  • --no-blob-protection
    • 이 조건을 추가하지 않으면 protected commits 에러가 발생한다.
    • protected commits를 포함시켜서 제거해줘야 하기 때문에 jarfile 실행 명령어에 해당 조건을 추가해야 한다.

실행결과, 용량이 큰 zip 파일과 mp4 파일이 삭제되었다.



4.5 새로운 저장소로 push

cd old-repository.git
git push --mirror <gitHub 저장소>




참고

https://www.lainyzine.com/ko/article/how-to-create-an-organization-for-collaboration-on-github/
https://velog.io/@sugenius77/Gitlab%EC%97%90%EC%84%9C-Github%EB%A1%9C-%EB%AF%B8%EB%9F%AC%EB%A7%81

profile
우당탕탕 FE 성장기

0개의 댓글