git

[git]이미 커밋된 작성자 변경하기 (git author change)

rachel_13 2022. 8. 13. 00:20

user.name, user.email을 여러 기기에서 변경하면서 사용하다보니 꼬이게 되었다.

내 잔디밭을 가꾸기 위해서..! 커밋 작성자를 변경해보도록 한다.

 

1. git config로 현재  user.name  user.email   확인하기

global로 설정했을 경우 --global 옵션을 추가하면 됨.

나의 경우는 한 pc에서 개인 계정 & 회사 계정을 동시에 사용하고 있어서 global 옵션은 사용하지 않았다.

git config user.name
git config user.email

 

2. user 변경

git config user.name "변경할 이름"
git config user.email "변경할 이메일"

 

3. 이미 커밋된 리스트 한 줄로 확인하기

git log --oneline

여기서 변경하고자 하는 커밋의 바로 직전 해시값을 복사해둔다.

* 만약 커밋 메세지가 여러개라면, 변경해야할 커밋 중 가장 오래된 커밋 해시값을 복사한다. (안그러면 같은 행동을 n번 해야됨;;)

 

4. rebase 로 변경한다.

git rebase -i "커밋 해시값"

 

5. 커밋 메세지 변경내용 란에 "pick" -> "e"로 변경한다.

(순서대로 진행)

- vi      : 에디터 기능 on

- i        : 편집 on

- pick "해시값" → e "해시값" 으로 변경

- esc   : 편집 off

- :wq!  : 저장 후 에디터 기능 off

 

6. 터미널에 git rebase 옵션으로 두 가지가 나오는데, 그 중 amend 사용

git commit --amend --author "변경한 이름 <변경한 이메일@주소.com>"

* amend : 개정하다, 고치다, 수정하다의 의미

 

여기까지 입력하면, 다시 편집 기능이 켜지는데, :wq!로 저장하고 다시 나와준 다음,

 

7.

git rebase --continue

를 변경할 커밋 횟수만큼 반복하면 된다.

 

8. git 강제로 push하기

git push origin main -f

or

git push origin +main

* 해당 레포의 default 브랜치가 main 인지 master 인지 확인할 것

* remote 저장소명 = origin

 

 

 

 

참고 :

https://otrodevym.tistory.com/entry/git-commit-%ED%95%9C-author-%EB%B3%80%EA%B2%BD%EC%9E%91%EC%84%B1%EC%9E%90-%EB%B3%80%EA%B2%BD-%EB%B0%A9%EB%B2%95

https://eggwhite0.tistory.com/93?category=978776