카테고리 없음

GitLab commit으로 GitHub에 잔디심기 (GitLab → GitHub 미러링)

개발자 뭄뭄 2023. 4. 18. 16:48
반응형

ssafy에서 GitLab을 사용하다보니 Github 잔디가 휑해 보였다. 물론 잔디에 집착하는 사람은 아니지만, 탈모걸린 잔디밭에 약간이라도 생기를 불어넣어주고자 GitLab commit을 Github으로 연동할 방법을 찾아보았다.

비어있는 GitHub에 GitLab Commit으로 잔디를 심어봅시다

주의
  1. 이 방법은 main branch 에 올라간 commit 만 반영이 되니 외않되!? 를 외치지 말고 main branch로 merge할 금요일에 다시 확인해봅시다.
  1. 먼저 github token이 필요합니다. token이 없으신 분은 먼저 발급받고 진행해주세요.

1. GitHub에서 새 레포를 만든다.

외부로 반출할 수 없는 코드라면 Private 레포로 만들자!

레포지토리를 생성했다면 레포지토리 주소를 복사한다.


2. GitLab 레포지토리로 이동한다

두번째 mirroring repositories의 Expand 를 클릭

Git repository URL은 아까 복사한 repo 주소에서 위사진에서 보이는 것과 같이 앞에 username@을 덧붙여야 한다.

최종주소는 https://<깃허브 username>@github.com/<깃허브 username>/<repo 이름>.git 의 형태

Password에는 github token을 입력하면 된다.

잠시만 기다리면 이렇게 mirroring이 완료된 것을 확인할 수 있다!


3. 잔디밭 옵션 바꾸기

mirroring이 성공적으로 진행되었는데도 잔디밭 상태가 그대로라면?

잔디밭의 오른쪽 Contribution settings에서 Private contributions 의 옵션을 클릭해서 활성화해주세요!

그러면 profile에서도 업데이트된 잔디밭을 볼 수 있습니다 🙂

4. Github email과 GitLab email이 다른 경우

github email와 gitlab email이 다르다면, 자동으로 커밋 반영이 안된다! 이 경우 두가지 방법이 있다.

4-1. 이메일을 추가해서 등록하기

깃허브 프로필 아이콘 → Settings > Access → Emails

에서 Add email address 부분에 gitlab에서 사용중인 이메일을 추가로 등록해준다.

4-2. 커밋내역의 이메일을 필터링해서 바꾸기

4-1. repo clone 받기

위에서 복사한 레포 주소를 로컬에 클론한다.

$ git clone "repo 주소"

4-2. 바꾸기

git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "//찾아서 바꿀 이메일 주소 입력//" ];
        then
                GIT_AUTHOR_EMAIL="//바꿀 이메일 주소 입력//";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

이 명령어를 입력하면 경고문과 함께 잠시 기다리면 그동안의 commit을 바꾸는 작업이 진행된다.

마지막으로 Ref 'refs/heads/master' was rewritten이 나온다면 작업이 완료!

4-3. force push 하기

$ git push --force명령어를 이용해서 강제 push를 해줍니다.

휑했던 잔디밭에 귀여운 잔디가 심겼습니다!

⚠️ 100MB 가 넘는 파일이 있으면 이 방법으로 미러링이 작동하지 않는다!

그런 경우에는 다음 포스팅을 참고하면 된다.


참고문서

gitlab -> github 잔디 옮겨심기
깃헙에 잔디 칸에 구멍이 숭숭난 것을 보고 마음이 헛헛해서 이전 회사에서 회사 계정으로 심었던 잔디들이라도 옮겨 심을수 없을까 찾아봤다. 우선 깃랩 레포 포크를 뜬 후 깃헙 계정으로 가서 레포 만들기를 누르면 import a repository가 있다. 누르고 싶게 생긴 파란 글씨..눌러보자 그럼 이렇게 클론할 레포 주소를 치라고 나온다. 포크를 뜬 깃랩 url을 입력해주자. 물론 회사 내부 소스코드이기 때문에 프라이빗으로 설정해준다. 이렇게 하고 나면 일단 깃헙에 새로운 프라이빗 레포가 생성이 됬지만 잔디는 심어지지 않는다..! 회사 레포에서 작업할때의 커밋 이메일과 현재 깃헙 계정의 이메일이 다르기 때문이다. 해서 이걸 rebase로 일일이 author mail을 바꿔줘야 하나? 해서 방법을 찾아보니..
https://redlemon.tistory.com/m/5?category=27270
GitLab commit이 GitHub에도 반영이 되도록 하는방법
GitLab 레포에 작업을 해야될 일이 생겨서 GitHub 잔디밭이 비게 될 것이 신경이쓰였다. https://sooya14.tistory.com/entry/Gitlab-%EC%97%90%EC%84%9C-Github-%EC%9C%BC%EB%A1%9C-%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%98%AE%EA%B8%B0%EA%B8%B0-%EB%AF%B8%EB%9F%AC%EB%A7%81 Gitlab 에서 Github 으로 저장소 옮기기 (미러링) 01. Gitlab 저장소 clone 되어 있으면 가마니 아니면 git clone `저장소 주소` 02. Github 저장소 만들기 03. 미러링하기 Gitlab 저장소에서 git push --mirror `옮길 저장소 주소` 브랜치랑 커밋 메세지까지..
https://ehddud100677.tistory.com/489
GitLab에서 GitHub로 미러링하기
GitLab에서 GitHub로 미러링 하기 오늘은 GitLab에서 GitHub로 미러링 연동 방법을 작성해보려고 합니다. 저는 GitHub보단 GitLab을 사용합니다. 제가 느끼기에 GitLab의 경우 폴더 형식으로 관리할 수 있어서 GitHub보다 편하게 느껴져서 처음 개발을 시작할 때부터 선택하여 사용하고 있습니다. 물론 GitHub를 사용 안 하고 있기엔 GitHub가 대중적이기에 이번에 GitLab 저장되어 있는 코드들을 GitHub에 옮겨보면 어떨까 라는 생각을 하면서 미러링 하는 방법을 남겨두고자 작성하려 합니다. GitHub 개인 액세스 토큰 발급 GitHub 접속 후 로그인을 하게 되면 우측 상단에 프로필 썸네일 이미지가 있습니다. 저는 프로필 이미지를 등록하지 않아서 사진은 없습니다.ㅎ..
https://day0404.tistory.com/37
[오류 해결] git push 멈춤 현상(무반응)
오늘은 깃(Git)을 공부하면서 마주했던 오류를 해결하는 방법을 정리하려고 한다. 깃(Git)공부는 팀 개발을 위한 Git GitHub 시작하기 (정호영, 진유림 지음)라는 책을 통해 하고 있는 중이다. 오늘부터 1일차이고 간단하게 로컬저장소에 파일을 만든 후 commit메시지와 함께 commit을 만드는 것까지 완료했다. 그 후에 원격저장소에 커밋을 올리는 과정에서 문제를 마주했다. 나는 Github Desktop, Sourcetree같은 GUI 환경을 통해 작업을 하는 것이 아닌 Git bash를 사용하는 CLI 환경에서 작업을 했다. 먼저, git remoted add origin [원격저장소 주소] 명령어를 사용하여 로컬저장소에게 원격저장소 주소를 지정해준다. 그리고 commit한 것을 원격 저장..
https://straw961030.tistory.com/169

Uploaded by N2T

반응형