본문 바로가기
Tools/Git

[Git] 커밋 작성자(author) 정보 수정하기

by A6K 2020. 11. 16.

git commit을 이용해 코드에 대한 수정을 깃허브에 반영할 때 잘 못된 작성자 정보가 반영되는 경우가 있다.

중간에 whoAreYou 라는 이상한 계정으로 커밋이 되어 버렸다

깃허브 계정 여러개를 같이 사용하는 경우나 개발 서버 하나를 여러명이 사용할 때 원하지 않는 계정 정보로 커밋이 남는 경우가 있다. 원하는 계정이 아닌 잘못된 계정으로 커밋 로그가 남게되어 컨트리뷰션에 남지 않거나 잘 못된 사람에게 문의가 갈 경우가 생긴다.

이 경우 git의 rebase 명령을 이용해서 커밋 작성자 정보를 수정할 수 있다.

우선 커밋 계정을 수정할 커밋의 바로 직전 커밋의 해시값을 확인하자. 해시 값을 보자. 이 케이스에서는 bec8b77다. rebase 명령을 실행하자.

git rebase -i -p bec8b77

bec8b77 커밋 이후 작성된 모든 커밋들에 대해서 rebase를 진행하게 된다. 이 명령을 실행하면 에디터가 뜬다.

# 문자로 시작되는 라인은 전부 주석이고 중요한 라인은 pick으로 시작되는 라인이다. 정보를 수정하고 싶은 커밋 앞에 있는 pickedit이라는 글자로 바꿔준다.

Commit 4에 해당하는 커밋의 작성자를 고칠 예정이므로 9886ca4에 해당하는 커밋의 pickedit으로 고쳐준다. 에디터 창을 저장 및 종료 (:wq)하면 rebase가 시작된다.

edit으로 선택한 커밋부분으로 다시 돌아간 상태가 된다.

$ git commit --amend --author="사용자명 <이메일>"

위 명령어로 작성자 정보를 고쳐준다.

작성자 정보뿐만 아니라 커밋로그까지 수정할 수 있다. 마잔가지로 저장하고 종료하기 (:wq)를 하면 커밋이 반영된다. 그리고 난 다음 rebase를 진행한다.

git rebase --continue

수정할 사항이 여러개라면 이 과정을 반복하면 된다.

edit으로 선택한 모든 항목에 대해서 수정이 끝나면 "Successfully rebased and updated refs/heads/master"라는 메시지가 뜬다. 이제 리모트에 강제로 푸쉬해주자.

git push -f

강제 푸쉬가 완료되었다. 

깃허브에 접속해보면 정상적으로 커밋 작성자가 변경된 것을 볼 수 있다. 다만 커밋 해시 값은 다른 값으로 수정되어 있는 것을 확인할 수 있다.

가끔 잘 못된 내용이 커밋 로그에 남는 경우가 있는데 사후에 바로 잡을 수 있으니 걱정하지 말기를...

댓글