git filter-branch -f --env-filter \
"GIT_AUTHOR_NAME='새 이름'; GIT_AUTHOR_EMAIL='새 이메일'; \
GIT_COMMITTER_NAME='커밋된 이름'; GIT_COMMITTER_EMAIL='커밋된 이메일';" HEAD

filter-branch를 사용해 기존 커밋의 author 이름과 이메일을 한번에 바꿔주는 방법입니다

 

WARNING: git-filter-branch has a glut of gotchas generating mangled history
	 rewrites.  Hit Ctrl-C before proceeding to abort, then use an
	 alternative filtering tool such as 'git filter-repo'
	 (https://github.com/newren/git-filter-repo/) instead.  See the
	 filter-branch manual page for more details; to squelch this warning,
	 set FILTER_BRANCH_SQUELCH_WARNING=1.
Proceeding with filter-branch...

Rewrite 6c3877d71a23f4f572a7d63c17c7efae12340efa (9/9) (0 seconds passed, remaining 0 predicted)
Ref 'refs/heads/main' was rewritten

쓰고 보니 git filter-branch는 deprecate 여러 이유로 되었다고 하네요

 

git-filter-repo 라는걸 쓰라고 하는데 살짝 찾아보니 mailmap 파일을 만들어야 되고 더 귀찮긴 하네요;; 언젠가 filter-branch가 퇴출되면 사용법을 찾아보겠습니다. 지금은 뭐 굳이..

 

주의사항

  • 기존 커밋 수정을 하기 때문에 force push가 필요합니다
  • 모든 브랜치의 커밋이 변경됩니다