Tip

[Git] 깃허브 잔디 안 심어짐, 이미 커밋해버린 후 user name, email 수정하기

hamsoter 2022. 3. 1. 23:05

commit 후 push 했음에도 불구하고 잔디가 심어지지 않는 이유는 로컬에서 설정해둔 email 이 깃허브에 등록된 email과 다르기 때문이다.

 

로컬 유저 정보 확인하기

아래와 같이 확인할 수 있다.

$ git config user.email

 

깃허브 유저 정보 확인하기

본인 프로필 클릭 후 Settings -> Emails 에서 깃허브에 연동된 이메일을 확인해볼 수 있다.

커밋들을 잔디로 반영되게 하려면 로컬 이메일을 깃허브에 연동된 이메일로 바꿔주어야 한다.

 

 

 

로컬 유저 정보 수정하기

특정 폴더의 유저 정보를 수정하려면 아래와 같이 하면 된다.

$ git config user.email "이메일"
$ git config user.name "이름"

 

 

로컬 환경 전체의 유저 정보를 한번에 수정하려면 --global 을 붙여준다.

$ git config --global user.email "이메일"

 

이미 커밋해버린 경우, 커밋 수정해주기 (rebase)

 

1. 아래의 명령어로 git log를 확인할 수 있다. 

$ git log --pretty=format:"%h = %an , %ar : %s" --graph

 

 

2. email이 꼬여버린 커밋의 바로 이전 해시코드로 rebase 한다.

$ git rebase -i -p 해쉬코드

 

2-1. 만약 첫번째 커밋부터 잘못되었다면 아래의 명령으로 대체한다.

$ git rebase --interactive --root

 

3. 수정해야 하는 커밋의 해시 코드 앞의 'pick'을 'edit'으로 편집해준 후 :wq

 

4. 바꿀 유저 정보를 입력한다.

$ git commit --amend --author="이름 <이메일>"

 그리고 조금 기다려주면 다시 vim 창이 뜬다.

더 수정할 내역이 없으니 그냥 :wq 해서 나오면 된다.

 

 

5. 다음 수정할 커밋으로 넘어간다.

$ git rebase --continue

 

이제부터 노가다.

4,5번을 아까 edit 했던 커밋수만큼 반복해준다.

 

 

6. 모든 rebase가 끝났다면 push 해주자

$ git push origin +main(혹은 브랜치명)

 

 

이런 일을 다신 겪고 싶지 않다면... 늘 깃허브와 로컬 유저 정보를 초창기에 확인하는 습관을 들이자.