728x90
언젠가부터 github에 나의 commit이 보이지 않았다.

원인은 commit 정보에 담겨있는 user.email과 user.name이 github계정 정보와 다르기 때문이다.
0. 앞으로 새로 작성할 커밋부터 올바르게
git config --global user.name "홍길동"
git config --global user.email "me@example.com"
1. 백업
git clone --mirror (원격리포주소) (생성 할 백업 폴더)
2. 매핑 파일(authors.map 또는 .mailmap) 작성
홍길동 <new@example.com> <old@example.com>
<new_work@example.com> <work@example.com>
<새 이메일> <옛 이메일> --> 이름 변경까지 원하면 앞에 "새 이름 <새메일> <옛메일>"
꺾쇠(괄호) 가 있어야 함
2-1. 기록된 이메일 확인
git log --all --format='%ae' | sort -u
3. 히스토리 재작성 명령
git filter-repo \
--mailmap authors.map \ # 또는 --use-mailmap
--force \ # 작업 디렉터리 보호 대화 생략
--refs $(git for-each-ref --format='%(refname)') # 모든 브랜치·태그
파일명을 .mailmap 으로 두면 --use-mailmap, 임의 이름이면 --mailmap authors.map 옵션 사용.
4. 결과 확인
git log --all --format='%h %an <%ae>' | head
git log --all --format='%ae' | sort -u # 더는 old@example.com 이 없어야 한다
5. 원격 반영
git push --force --all
팀원이 있을 경우 기존 커밋 해시가 모두 바뀌므로, 팀원에게 “레포를 새로 클론” 하도록 공지.

728x90