본문 바로가기

Github/git

깃허브 commit의 작성자 변경하기(git-filter-repo)

공식문서

newren/git-filter-repo: Quickly rewrite git repository history (filter-branch replacement) (github.com)

 

 

🟩 0. 준비물

  • python
  • git
  • 환경변수를 설정할 지식

 

🟩 1. git-filter-repo를 다운받는다.

git clone https://github.com/newren/git-filter-repo.git

어디로 다운 받는지 상관 없습니다. 환경변수를 저장할거이기 때문입니다.

 

 

 

🟩 2. 환경변수 저장을 해준다.

git-filter-repo.py가 있는 폴더를 환경변수로 저장해준다.

clone 받은 폴더를 통체로 저장해주세요

 

🟩 3. filter-repo가 잘 설정됬는지 확인한다.

git filter-repo --version 하면 이산한 문자가 뜨면 path에 잘 인식이 되었습니다.

 

 

🟩 4. .mailmap 파일을 만든다.

올바른 사용자 <correct.email@example.com> <잘못된 이메일@example.com>

 

ex)asd <asdb@google.com> <notThis@google.com>이런식으로 .mailmap 파일을 만들어줍니다.

 

🟩 5. filter-repo를 실행시킨다.

git filter-repo --mailmap .mailmap

아까 썻던 mailmap파일을 실행시키는 명령어 입니다.

💥 이 때 주의할 점은 내가 변화시키고 싶은 git log가 있는 파일에 가서 명령어를 실행시켜야 합니다. 보통 프로젝트 파일의 최상단의 .git 파일의 log를 변화시킨다고 생각하면 됩니다.

 

🟩 6. 변화됨을 확인한다.

git log

명령어로 확인해 줍시다. 이메일만 바뀌면 git 계정에 연결이 됩니다. 즉, 이력은 이메일 기준입니다. 이름은 바뀌지 않습니다.

 

 

🟩 7. push 한다.

git push --force origin main

push 할 때 문제가 생길 수 있으니 --force로 강제로 밀어 넣습니다.

 

 

 

참고

 

⚠ 깃허브 commit의 작성자 변경하기(위험, feat. git-filter-repo)

config은 미리 잘 확인하자.

velog.io

 

728x90