[GitHub] GitLab 커밋 잔디 동기화

2024. 9. 20. 15:27카테고리 없음

728x90
반응형

🧸 시작

매일 잔디 심기를 목표를 가지는 사람이 있을 정도로 개발자로서 잔디 심기는 꾸준함과 성장의 상징(?)처럼 여겨지고 있다.

매일 커밋을 하고 새로운 코드를 작성하며, 지속적으로 프로젝트에 기여하는 것은 개발자의 실력을 쌓는 중요한 과정이다.

이러한 꾸준함은 개발자로 성장하는 데 큰 도움이 된다. (근데 요즘에는 잔디때문에 커밋만 채우려고 하는 사람들이 생겨나서 잔디에 대해서 큰 의미를 두지 않는다고 하는 사람도 있긴 한거 같다)

하지만 그것도 없는 거보다는 결과물이라는 게 존재하니까 좋은 거 같다. (좋은게 좋은 거죠 뭐 ㅎㅎ)

 

🧸 새로운 GitHub 레포지토리 준비

  • 본인의 깃허브에 새로운 레포지토리를 만든다.
  • 회사의 깃랩 주소를 옮기는 거라면 Private으로 하면 된다.
git clone <본인의 새로운 레포지토리 주소>
  • 새로운 레포지토리 주소를 clone 받아둔다.

 

🧸 Contributions Importer for GitHub 설치

 

GitHub - miromannino/Contributions-Importer-For-Github: This tool helps users to import contributions to GitHub from private git

This tool helps users to import contributions to GitHub from private git repositories, or from public repositories that are not hosted in GitHub. - miromannino/Contributions-Importer-For-Github

github.com

Contributions-Importer-For-Github

git clone https://github.com/miromannino/Contributions-Importer-For-Github.git
  • 위의 깃허브 링크로 들어가서 clone 해준다.

 

🧸 가상환경 사용 

python3 -m venv path/to/venv
source path/to/venv/bin/activate
  • source를 입력하면 가상환경을 실행시켜준다.
  • 가상환경을 실행하면 터미널에 가상환경이름 (venv)가 표시될 것이다.

✔️  가상환경 종료

deactivate
  • 가상환경에서 나가기 위해서는 다음 명령어를 입력하면 된다.

 

🧸 패키지 설치

python3 -m pip install gitpython
python3 -m pip install pathlib
  • 필요한 패키지를 설치해준다.

 

🧸 run_script.py 생성

import git
from git_contributions_importer import *

# 커밋기록을 가져올 프로젝트
repo = [
    git.Repo("<프로젝트 폴더 경로>"),
]

# 커밋기록을 저장할 새로 만든 레포지토리
mock_repo = git.Repo("<clone받은 레포지토리 폴더 경로>")

importer = Importer(repo, mock_repo)

# 커밋기록을 가져올 프로젝트에서 커밋기록으로 남아있는 이메일 목록
importer.set_author(['이메일1@gmail.com', '이메일2@naver.com'])

# 새로 만든 레포지토리의 마지막 커밋 시간 이후 새로운 커밋들만 가져오기
importer.set_start_from_last(True)

importer.import_repository()

 

 

 

 

🧸 run_script.py 실행

python3 run_script.py

 

  • 해당 폴더로 들어가서 파일을 실행해준다.

나는 해당 파일을 실행했지만 ModuleNotFoundError: No module named 'git_contributions_importer' 이러한 오류가 출력되면서 실행되지 않았다.

공식 깃허브의 이슈를 뒤져보니까 나와 같은 이슈를 겪은 사람의 글이 있었다.

https://github.com/miromannino/Contributions-Importer-For-Github/issues/46

 

No module named 'git_contributions_importer' · Issue #46 · miromannino/Contributions-Importer-For-Github

the import scripts from the tutorials didn't work for me. Specifically the line: from git_contributions_importer import * running python_run.py in root. it failed as (Contributions-Importer-For-Git...

github.com

✔️  해결 방법

import git
from .Content import *
from .Importer import *
from .Committer import *

 

  • 문제가 있는 2번째 줄을 이렇게 변경한 후 저장한다.

  • 해당 파일을 Contributions-Importer-For-Github > src 폴더로 이동시킨다.
python -m src.run_script
  • 해당 명령어로 파일 실행

 

🧸 마무리

이제 이메일 설정 후 나의 레포지토리에 push 해주면 된다.

✔️  이메일 설정

  • run_script.py 파일에 입력했던 이메일 목록을 등록해준다.

 

✔️  깃허브 레포지토리 push 

깃허브 레포지토리 폴더에 content라는 파일이 생겼을 것이다. 이것들을 이제 나의 깃허브로 올리면 된다.

git push origin main
  • 푸시푸시 베이베 -.- 

 

✔️  결과

  • 이렇게 내가 깃랩에 커밋했던 내역들이 잔디로 생겨난다.

아주 알록달록 하구망 뿌듯하구망~ 근데 너무 평일에만 일하고 주말에 노는 거 티나나 ㅎㅎㅎ 이제 가끔씩 주말에도 한 번씩 커밋해줘야하나 ㅎㅎㅋㅋ그래도 뭔가 파릇파릇한 기분이 들어서 나름 만족!

Push 를 한 후에 잔디가 나타나지 않았다면 아래의 옵션이 둘다 체크가 되어있는지 확인하면 된다.

private에 체크가 안되어있다면 private으로 커밋된 결과는 잔디가 나타나지 않을 것이다.

 

 

 

 

 


📂 정리

한번 레포지토리에 적용을 시켜논 후에 다시 업데이트할 때는 아래의 단계로 빠르게 접근하기

1. 가상환경 실행

python3 -m venv path/to/venv
source path/to/venv/bin/activate

2. 스크립트 실행

python -m src.run_script

3. 레포지토리 push

git push origin main

4. 가상환경 종료

deactivate

 

 

 

 

 

반응형

 

 

728x90
반응형