본문 바로가기
IT 기술/개발환경_유틸 관련 팁

[git] 여러 개의 commit 에서 author 변경하기

by 땅뚱 2022. 11. 9.

자신의 git local 저장소에서 작업을 하게 되는 경우에, 잘못된 author 정보가 들어간 경우, local commit 에 이미 반영된 자신의 이메일이나 이름 정보등을 변경할 경우에, author 를 수정할 필요가 있다. author 를 수정하는 방법은 여러 가지가 있는데, 여기서는 특정 commit 이후 모든 author 정보를 수정하는 방법에 대해서 알아본다.

 

우선 git config 명령으로 repository 작업하는 사용자 이름과 이메일정보를 확인하거나, 변경한다.

git config --global user.name "USER NAME"
git config --global user.email "USER EMAIL"

git rebase 명령의 -x 옵션을 사용하여 특정 commit 이후의 모든 commit 의 author 정보를 수정한다.

git rebase -i <commit hash> -x "git commit --amend --reset-author -CHEAD"

위 명령을 수행하면, 아래와 같이 git rebase -i 를 수행했을 때와 같은 화면이 나오고 -x 옵션 이후의 명령이 commit 중간에 exec 명령과 함께 따라 적힌다.

pick xxxxxx <Commit title #1>
exec git commit --ammend --reset-author -CHEAD
pick xxxxxx <Commit title #2>
exec git commit --ammend --reset-author -CHEAD
pick xxxxxx <Commit title #3>
exec git commit --ammend --reset-author -CHEAD

변경되어야 할 commit list 를 확인한 후에 exit (Ctrl-x 또는 :q) 하면 author 가 현재 설정된 author 로 바뀌게 된다. 이를 해주는 것이 --reset-author 옵션이다. --reset-author 는 -C/-c/--amend 옵션과 함께 사용하거나, cherry-pick 한 패치의 충돌을 수정하고 commit 할 경우에 author 를 현재 작업중인 committer 로 바꿔주도록 하는 옵션이다.

 

만일 특정 패치만 다른 author 를 넣어야 한다면, 위 rebase 의 편집화면에서 exec 명령줄을 바꿔주면 된다.

exec git commit --amend --author="USER NAME <USER EMAIL>"

원본링크: https://www.deployhq.com/git/faqs/update-author-committer-multiple-git-commits

 

How can I change the author of multiple Git commits?

Learn how to update the author and committer details of multiple commits in your repository.

www.deployhq.com