GitLab을 사실 개인적으로 프로젝트 할 때 쓸 일은 없을 것이라 생각하지만 일단 써본다.
1. 깃허브에서 토큰 발급하기
Github 로그인 > Settings > Developer Settings(맨 밑) > Personal access tokens > 토큰 발급
Fine-grained tokens, Tokens (classic) 둘 중에 아무거나 사용해도 괜찮다.
토큰을 발급받은 적이 있다면 알겠지만 생성 후 딱 한번만 보여주기 때문에 복사해서 어딘가 저장해둬야한다.
2. GitLab에서 작업한 프로젝트를 미러링할 Github 리포지토리 생성
3. GitLab의 프로젝트를 방금 만든 리포지토리에 연결
GitLab > 미러링하고자 하는 리포지토리 > 좌측 메뉴 Settings > Repository > Mirroring repositories
- 리포지토리는 http://, https://, ssh://, git:// 으로 시작하는 url만 접근할 수 있습니다.
- http:// 또는 https:// 프로토콜을 사용할 때, 정확한 리포지토리 주소를 제공해야한다. HTTP 리다이렉트가 따라 붙지 않는다.
- 요구된다면 URL에 유저 아이디를 붙인다. (https://username@gitlab.company.com/group/project.git)
(유저 아이디는 GitLab인지 Github인지 잘 모르겠다.) - 리포지토리 갱신은 180분 이후에 타임아웃됩니다. 큰 규모의 리포지토리라면 clone과 push를 사용해야합니다.
- Git LFS(Large File Storage)는 LFS가 프로젝트에서 사용 가능할 때 동기화됩니다. 미러링을 push하는 것은 ssh를 통한 LFS 동기화를 실행하지 않습니다.
- pull 미러링 시, 사용자는 새로운 브랜치가 생성되거나 새로운 커밋이 이미 존재하는 브랜치에 push되는 등의 갱신 결과인 활성 피드의 모든 이벤트의 작성자가 된다.
미러링 시의 조건을 번역해봤는데, 솔직히 반절은 무슨 소리인지 잘 모르겠다 ㅜㅜ
밑에도 여러가지 조건이 있다.
1. Keep Divergent Refs (분기 참조 유지)
기본적으로, 원격 미러링한 어떤 참조(브랜치, 태그, 커밋)이 로컬 리포지토리에서 분기한다면 모든 push가 실패하고 아무것도 갱신되지 않는다. 이 행위를 오버라이딩하기 위해선 이것을 선택해야한다. 미러링 리포지토리가 만들어진 후, 이건 API를 통해서만 수정 가능하다.
2. Mirror only protected branches
가능하다면, 오직 protected 상태에 있는 브랜치만 미러링한다.
아무튼 이런 옵션들이 있다.
Mirror Repository를 누르고 새로고침 아이콘을 눌러야 깃헙 리포지토리에도 작업한 것이 업데이트된다.
앞으로는 깃헙에서 작업해야겠다.