Plastic SCM에서 GitHub로 옮겼을 때 이메일 변경하기(잔디심기)

heisje·2023년 6월 4일
1
post-thumbnail

기존에 저장되어있는 NAME과 EMAIL을 바꾸는 방법을 소개합니다.
저장소의 이력을 변경하는 명령어이기 때문에 주의하세요!

개요

Plastic SCM을 Git hub에 연동하니 잔디가 안심긴다...
잔디를 심어보자


🎈문제확인

1. GIT과 Plastic SCM의 구조가 다른 문제
아래는 Plastic SCM을 GitHub로 옮긴 레포지토리를 git log로 확인한 것입니다.

Author: heeje1996@gmail.com <>

반면 정상적인 Github 레포지토리의 구조는 이렇게 됩니다.

Author: heeje <heeje1996@gmail.com>

이처럼 Name <EMAIL>이 되어야하지만, GIT의 NAME부분에 Plastic SCM의EMAIL이 들어와있습니다.

이로 인해 잔디가 심겨지지 않았습니다.

2. 깃허브 이메일과 Plastic SCM의 이메일이 다른 문제
깃허브 이메일과 Plastic SCM의 이메일이 다르기 때문에 변경했어야 했습니다.



✨해결방법

1. Git 저장소를 로컬에 복제(clone)합니다.

git clone https://github.com/username/repository.git repository

2. 최상위 디렉토리에 새로운 파일change_email.sh을 만들고, 아래의 스크립트를 저장했습니다. (파일 이름은 상관없습니다)

🧨 주의사항: 아래의 스크립트는 Plastic SCM에서 Git hub로 동기화 한 레포에만 해당됍니다.

git filter-branch --force --env-filter '
OLD_EMAIL="변경 전 이메일@gmail.com"
CORRECT_NAME="변경 후 이름"
CORRECT_EMAIL="변경 후 이름@gmail.com"

if [ "$GIT_COMMITTER_NAME" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_NAME" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

이 스크립트는 각각의 커밋의 이메일 주소를 변경합니다.
커밋 날짜는 변경되지 않으니 안심하세요!

3. 실행 권한을 부여하고

chmod +x change_email.sh

4. 스크립트를 실행합니다.

./change_email.sh

5. git log를 통해 잘 변경되었는지 확인합니다.

git log

6. git을 강제로 푸시합니다.

git push origin --force --all



참고자료

Plastic SCM을 Github와 연동하기 1
https://velog.io/@jaehyeoksong0/Plastic-SCM-2
Plastic SCM을 Github와 연동하기 2
https://velog.io/@jaehyeoksong0/troubleshooting-Plastic-SCM-1

profile
김희제의 기술블로그

0개의 댓글