Git 로그의 이메일 주소 다 바꾸기

Assembla과 같은 호스팅 서비스에 Git 저장소가 있다. 그리고 Git 저장소의 커밋 로그, 그 중에서도 커밋한 사람의 이름과 이메일 주소를 바꿔야 하는 상황이다. 이럴 때는 다음과 같이 한다.

  1. 기존 저장소를 모두 복사해온다.

    git clone --mirror [oldUrl]
    
  2. Git Tools – Rewriting HistoryChanging E-Mail Addresses Globally에 나온대로 명령 줄 스크립트를 작성한다.

    git filter-branch --commit-filter '
        if [ "$GITAUTHOREMAIL" = "schacon@localhost" ];
        then
                GITAUTHORNAME="Scott Chacon";
                GITAUTHOREMAIL="schacon@example.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' -- --all
    
  3. 이렇게 변경한 로컬 저장소를 Assembla에 새로 만든 저장소에 올린다.

    git push git@git.assembla.com:newproject.git --mirror
    

끝!

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu