문제
GitHub에 2023년 1월 2일 ~ 2023년 1월 5일까지 push 했음에도 잔디가 누락되는 현상 발생했습니다.
소중한 잔디를 다시 잃을 수 없기에 해결방법과 복구한 방법을 정리했습니다.
원인
저는 GitHub 계정에 등록되어 있는 이메일 계정과 local 환경 이메일 설정이 다른게 원인이었습니다.
(다양한 원인이 있습니다.)
해결방법
Local email 정보 변경 🔨
1. git 설정 리스트 확인
git config --list
2. user.email 과 GitHub 등록된 이메일 확인
확인해보니
3. email 설정 변경
git config --global user.email "변경email"
git config --global user.name "변경name"
잔디 복구하기🌄
잔디 복구 하기 전 위의 해결방법, email, name 정보를 변경해야됩니다.
1. git Log 확인
git log
2. 해쉬 코드 찾기
git log --pretty=format:"%h = %an , %ar : %s" --graph
3. 해쉬 코드 찾아서 접속
git rebase -i 해쉬코드^
4. i (input 모드)을 눌러서 접속
변경할 이메일 commit 목록에서 pick -> edit로 변경
esc를 눌러 input 모드를 빠져나와 :wq 를 입력하여 저장
5. 변경할 username과 email를 입력한 후, :wq 를 입력하여 나옵니다.
git commit --amend -author "변경할 이름 <변경할 이메일>"
6. rebase continue를 입력하여 변경할 커밋할 내용들을 넘겨줍니다.
(저는 변경할 내용이 14번이라 14번 반복했습니다.)
git rebase --continue
7. 강제 push를 하여 이름과 이메일 변경 완료
branch 앞에 +를 붙여 강제로 push 할 수 있도록 합니다.
git push <remote> +<branch>
🤸♀️사막에 잔디가 살아났습니다🤸♂️
Git Log name과 email 변경하는 법
Git 잔디를 복구하기 위해 여러 곳을 탐방하다가
Git Log 내역에서 name과 email를 변경할 수 있는 좋은 코드를 발견해서 기록해놓습니다.
$ git filter-branch --env-filter '
WRONG_EMAIL="변경전 email"
NEW_NAME="변경할 name"
NEW_EMAIL="변경할 email"
if [ "$GIT_COMMITTER_EMAIL" = "$WRONG_EMAIL" ]
then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$WRONG_EMAIL" ]
then
export GIT_AUTHOR_NAME="$NEW_NAME"
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
'공부' 카테고리의 다른 글
[GIT] Git Hub push error 해결하기 - error : failed to push some refs to.. (2) | 2023.01.16 |
---|---|
[알고리즘] 알고리즘 #0 - 알고리즘이란? 종류와 의미 (2) | 2023.01.13 |
[Error] getXXX 오류 (2) | 2023.01.11 |
[AI] 아나콘다 설치 및 Tansorflow 가상환경 설정 #0 (2) | 2023.01.10 |
[BITcamp] 네이버 클라우드 과정 - 3기 신청 및 면접 후기 (11) | 2023.01.09 |