github 이메일 변경으로 인한 잔디 복원

iijung·2022년 7월 3일
0

원인

이메일을 변경하는 경우 커밋을 했던 작성자(Author) 이메일이 달라지기 때문에 잔디가 사라진다.

해결

주의사항

  • 원격 저장소 강제 푸시로 인해 Github 저장소의 기존 커밋들은 새로운 해시 값을 가진 다른 커밋으로 덮어쓰기 처리된다.
  • 위 문제로 인해 다른 사람과 함께 공유하여 협업하고 있는 경우, 모든 로컬 저장소를 새로 커밋 받아야한다.

git-filter-branch

  • git-filter-repo보다 안정성 및 속도가 낮다.
$ git filter-branch -f --env-filter "GIT_AUTHOR_NAME='OLD NAME'; GIT_AUTHOR_EMAIL='OLD EMAIL'; GIT_COMMITTER_NAME='NEW NAME'; GIT_COMMITTER_EMAIL='NEW EMAIL';" HEAD
$ git log
	# 제대로 변경되었는지 확인 
$ git remote add origin 깃경로 
$ git push -f origin main

git-filter-repo (git >= 2.22)

  • git filter-branch 보다 훨씬 빠르고 안전하게 처리할 수 있다.
$ git filter-repo --force --name-callback 'return name.replace(b"OLD NAME", b"NEW NAME")'
$ git filter-repo --force --email-callback 'return email if email != b"OLD EMAIL" else b"NEW EMAIL"'
$ git log
	# 제대로 변경되었는지 확인 
$ git remote add origin 깃경로 
$ git push -f origin main

0개의 댓글