본문 바로가기
CS

[Git] git commit author 변경하기

by judy@ 2023. 4. 27.

목차

  1. 문제 상황 설명
  2. 문제 정의
  3. 해결 방법 (해결 완료)

문제 상황

다른 컴퓨터에서 작업을 하다가, 깃 커밋을 두 번 정도 했다. 마지막 커밋은 author 변경해야 하는 것이 기억나서 했다. 하지만 그 전 커밋은 author가 다른 사람으로 되어 있었고, 개인 깃헙에 push하려고 하니, 403 에러가 떴다.

 

문제 정의

원격 저장소에 저장된 커밋 중, 가장 최신이 아닌 커밋의 author가 미스매치됨.

git commit 중 직전 커밋이 아닌, 그 보다 더 전의 커밋을 수정해야 함.

 

해결 방법 (해결 완료)

1. 이전 커밋을 수정 모드로 바꾸기

# 로그를 확인하여 author가 잘못된 커밋을 찾자 (해시값도 좋고, 비교적 최신이면 몇 번째인지 확인)
$ git log

# 끝에서 두 번째 커밋이 문제. 커밋 메세지를 수정하자
$ git rebase -i HEAD~2

# nano 편집기가 열렸다;;
pick #############################
pick #############################

# 위처럼 pick으로 시작하는 메세지를 e로 변경한다
e #############################
e #############################

# nano 편집기를 종료 (종료 -> 저장 -> default로 저장)
## ctrl + X / Y / enter

2. 수정모드로 되어있는 커밋의 author 변경 (##### 본인의 이메일을 작성하면 된다)

# author 수정
$ git commit --amend --author="#######@gmail.com"

3. 수정 내역을 반영 (잘 되면 가장 아랫줄과 같이 successfully 확인 가능)

# 잘 수정되었는지 확인
$ git status
interactive rebase in progress; onto #######
Last command done (1 command done):
   edit #########################################
Next command to do (1 remaining command):
   edit #########################################
  (use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch 'main' on '#######'.
  (use "git commit --amend" to amend the current commit)
  (use "git rebase --continue" once you are satisfied with your changes)
  
# 반영하고 싶으면 아래와 같이 입력하라고 윗 줄에서 지시 (반영)
$ git rebase --continue

# 커밋이 두개였어서 연속해서 위 명령어 한 번 더 입력 (반영)
$ git rebase --continue
Successfully rebased and updated refs/heads/main.

4. git log 찍어보면 author가 잘 바뀌어있을 것. push!

 


다행히 문제 해결..휴..

반응형