본문 바로가기

Git

잘못된 계정으로 push한 경우 commit의 author 변경하기

새 프로젝트 세팅하다가 커밋을 했는데 잔디가 심어지지 않아서 보니까 잘못된 계정으로 커밋이 되었다. 이런적이 두어번 있기도 했었고 잔디는 중요하기 때문에(?) 이럴 경우 어떻게 해결하면 되는지 블로그 글로 남겨놓고자 한다. 참고로 나는 vscode를 사용중이므로 vscode terminal에서 진행했다.

 

 

 

1. 위의 이미지에서 수정이 필요한 커밋의 해쉬코드는 b800df08인데, 아래의 rebase 명령어를 사용할 때는 수정하고자 하는 커밋의 ⭐직전커밋⭐의 해쉬를 넣어준다. 나 같은 경우에는 34eabfaa를 넣어주면 된다. 

git rebase -i -p 34eabfaa

 

2. 명령어를 치면 아래와 같은 vim editor가 뜨는데, 수정하고자 하는 커밋 앞의 단어 pick을 edit으로 바꿔준다.

*vim editor 사용법을 모를 경우 참고: i를 눌러 insert mode를 활성화 시켜 pick을 edit으로 바꿔준 후, esc를 눌러서 insert mode에서 나간 뒤 :wq로 저장후 종료시킨다. :wq는 저장 후 종료라는 뜻이다.

:wq로 저장 후 종료 했다면, 해당 commit에 대한 rebase모드가 진행된다는 것이 vscode 상태바에 표시된다.

 

3. 위와 같이 rebase가 진행중인 것으로 보이면, 아래 명령어를 입력한다. 원하는 사용자 이름과 이메일을 입력하여 커밋을 수정한다.

git commit --amend --author="HyeIn Ju <hyein.ju92@gmail.com>"

 

4. 그리고 나서 아래 명령어로 다음으로 수정이 필요한 커밋으로 넘어가거나, 다음으로 수정이 필요한 커밋이 없으면 rebase 작업을 종료한다.

git rebase --continue

나같은 경우에는 edit한 커밋이 1개 밖에 없으므로 아래의 명령어를 입력했을 때 바로 종료되었다. vscode의 상태바에서도 rebasing 상태를 가 사라진 것을 볼 수 있다.

그리고 나서 git 그래프의 모습은 아래와 같다. author가 바뀐 채로 새롭게 커밋이 된 것을 확인 할 수 있다.

 

5. rebase 후에는 git push origin -f 브랜치이름 명령어로 로컬에서 반영한 내용을 강제로 push 해주어야 한다. 내 경우에는 master브랜치로 push 하였다.

git push origin -f master

 

이렇게 해서 잔디도 심어지고 내 깃 계정으로 깔끔하게 표시된 것을 확인 할 수 있다.