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(혹은 브랜치명)
이런 일을 다신 겪고 싶지 않다면... 늘 깃허브와 로컬 유저 정보를 초창기에 확인하는 습관을 들이자.