Search
Duplicate

GitHub 이메일 교체 시 잔디가 사라지는 현상

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
git
태그
Scrap
8 more properties

이메일 변경

1.
Settings > Access > Emails 에서 변경하고자 하는 이메일을 추가한 뒤 기본 이메일 변경
GitHub 계정의 이메일을 삭제하는 경우 잔디가 사라지는 현상 발생!!
GitHub 계정의 이메일과 해당 커밋의 작성자 이메일이 동일해야 잔디가 심어진다.
2.
사용자 이름 및 이메일 변경
# 전역 설정 (위치: ~/.gitconfig) $ git config --global user.name "변경 후 이름 " $ git config --global user.email "변경 후 이메일" # 저장소 별 설정 (위치: [REPO]/.git/config) $ git config user.name "변경 후 이름 " $ git config user.email "변경 후 이메일" # 설정 확인 $ git config --list
Shell

잔디 복구

[방안 1]

기존 이메일을 제거하지 않고 서브 이메일로 사용하는 방법이 제일 안전하다.

[방안 2]

기존 이메일을 제거하는 경우 복구할 저장소의 전체 커밋을 강제(--force)로 변경해야 한다.
git >= 2.22.0 또는 git >= 2.24.0 이상
python3 >= 3.5
# git-filter-repo 설치 $ python3 -m pip install --user git-filter-repo Requirement already satisfied: git-filter-repo in /root/.local/lib/python3.6/site-packages $ git --exec-path /usr/lib/git-core $ cp /root/.local/bin/git-filter-repo /usr/lib/git-core/ # Ensure '<john@example.com> <root@localhost>' is a line in .mailmap, then: git filter-repo --use-mailmap $ add-apt-repository ppa:git-core/ppa -y $ apt-get update $ apt-get install git -y # 이름/이메일 일괄 변경 $ git filter-repo --force --name-callback 'return name.replace(b"OLD NAME", b"NEW NAME")' $ git filter-repo --force --email-callback 'return email if email != b"OLD EMAIL" else b"NEW EMAIL"' $ git remote add origin 깃경로 $ git push -f origin main
Shell

참고