깃허브에 열심히 잔디를 심던중 잔디가 심어지지 않는 현상을 발견했습니다.
구글링을 해보니 git log를 살펴보았고 username과 email이 다른 계정으로 push 되고 있어서 잔디가 심어지지 않고 있었습니다.
확인 명령어
git config --list
Git에서 커밋에 등록된 이름과 이메일을 수정하기 위해서는 다음과 같은 명령어를 사용할 수 있습니다.
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_EMAIL" = "<wrong_email@example.com>" ];
then
GIT_COMMITTER_NAME="<correct_name>";
GIT_AUTHOR_NAME="<correct_name>";
GIT_COMMITTER_EMAIL="<correct_email>";
GIT_AUTHOR_EMAIL="<correct_email>";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
위 명령어는 git filter-branch
를 사용하여 모든 커밋을 다시 작성하고, 이때 커밋에 등록된 이메일이 <wrong_email@example.com>
인 경우에는 <correct_name>
과 <correct_email>
로 수정합니다.
위 명령어에서 <wrong_email@example.com>
에는 수정하려는 잘못된 이메일 주소를, <correct_name>
과 <correct_email>
에는 수정하려는 올바른 이름과 이메일 주소를 각각 입력하면 됩니다.
명령어 실행 후에는 커밋 히스토리가 변경되므로, 변경된 내용을 다시 원격 저장소로 푸시해야합니다. 이때, --force
옵션을 사용하여 강제로 푸시해야합니다.
하지만 이 방법은 모든 커밋을 다시 작성하기 때문에, 기존에 공유된 저장소와 충돌이 발생할 수 있습니다. 따라서, 해당 저장소를 사용하는 다른 개발자와 협의 후에 위 명령어를 실행해야합니다.