깃허브 잔디 안심어질 때

김종완·2023년 3월 22일
1

깃허브에 열심히 잔디를 심던중 잔디가 심어지지 않는 현상을 발견했습니다.

구글링을 해보니 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 옵션을 사용하여 강제로 푸시해야합니다.

하지만 이 방법은 모든 커밋을 다시 작성하기 때문에, 기존에 공유된 저장소와 충돌이 발생할 수 있습니다. 따라서, 해당 저장소를 사용하는 다른 개발자와 협의 후에 위 명령어를 실행해야합니다.

profile
개발에 재미를 느끼며 꾸준히 성장하는 개발자 김종완 입니다.

0개의 댓글