크디큰 실수를 접했습니다.
전 원래 윈도우 데스크탑에서 코딩을 하다가 최근 맥북을 구입해서 프로젝트를 이어가고 있었습니다.
맥북에 설치한 vscode에 서브브랜치를 생성과 함께 config를 등록하는 과정에서 작은 휴먼에러를 일으켜버린 것 입니다.
user.email="제 이메일" 을 작성해야했지만 use.email="제 이메일" 로 등록해버린 것입니다.
제가 이 문제를 config를 등록했던 그 당시에 알아차렸다면 이 블로그 글은 작성되지 않았을겁니다 그렇습니다.
전 서브브랜치에서 업무를 마칠때까지 그 오류를 알아차리지 못했습니다.
메인 브랜치에 서브 브랜치를 merge하고 난 뒤에 제 github잔디는 변화가 없었습니다.
그때 뭔가 잘못됐다는 것을 알아차리고 문제를 파악하기 시작했습니다.
github의 잔디는 default브랜치의 이력에 따라 심어지는데, 메인 브랜치에 merge했지만 잔디에 반영이 되지않았다면
두 가지 문제점을 생각해볼 수 있습니다.
첫째, default 브랜치가 main 혹은 matser 브랜치가 아닌 경우
이 경우는 github 설정에서 변경해주면 됩니다. 변경이 필요한 레포에 들어가 setting으로 들어갑니다.
Default branch 탭에서 원하는 브랜치를 설정해주면 됩니다.
둘째, config에 등록된 이메일정보가 github 이메일 정보와 다를 때
두 번째 경우가 제가 겪은 문제 상황입니다.
본래대로라면 user.email="이메일 정보" 가 등록되어있어야하지만, 제 config--list를 보시면 아래와 같이 등록이 되어있었습니다.
$ git config --global user.name="깃허브 계정 이름"
$ git config --global user.email="깃서브 계정 이메일"
위 코드는 터미널에서 config에 user.name과 user.email을 추가하는 명령어입니다.
이 명령어를 통해 이후 commit되는 이력들을 올바른 이름과 이메일로 남길 수 있었습니다.
이와 함께 해야하는 것은 config의 email 정보 변경, 잘못된 이메일로 commit한 이력들을 변경하는 것입니다.
github에서는 commit을 대거 변경해야하는 경우 별도로 레포지토리를 백업해두는 것을 권장하고 있습니다.
레포를 백업하는 방법은 다음 포스트에 바로 작성해두겠습니다.
그럼 commit들을 필터링을 통해 한번에 변경하는 방법을 알아보겠습니다.
과거에는 git filter branch를 사용했었지만, 성능과 효율성, 간결함과 업데이트 주기에 따라 git filter repo 사용을 권장하고 있습니다.
Git filter repo 사용법
filter-repo 설치:
pip install --user filter-repo
이메일 변경 스크립트 생성:
email-map.txt라는 파일을 생성하여 이메일 매핑을 지정합니다. 예를 들어, 다음과 같이 파일을 만들 수 있습니다.
current-email@example.com new-email@example.com
filter-repo 실행:
git filter-repo --email-map email-map.txt
위 명령어는 모든 커밋에서 current-email@example.com을 new-email@example.com으로 변경합니다.
변경된 내용 푸시:
git push --force
변경된 커밋을 푸시합니다. 이때 --force 플래그를 사용하여 기존의 히스토리를 덮어씁니다.
위 과정으로 올바르지못한 이메일로 등록되었던 commit 이력들을 제 이메일 이력으로 남길 수 있었고
제 잔디의 평화를 지킬 수 있었습니다.
'FE 개발' 카테고리의 다른 글
[FE 개발] 프레임워크와 라이브러리 (0) | 2024.01.17 |
---|---|
[FE 개발] 동기와 비동기 (0) | 2024.01.17 |
[Git] commit 이력 조회하는 방법 (0) | 2023.10.27 |
[Git] 원격 저장소 repository remote 주소 변경 (0) | 2023.10.24 |
CSR SSR SSG 의 정의와 장단점 비교 (0) | 2023.03.07 |