Search
Duplicate

[스프링 게시판] reflog로 커밋 복구하기

@3/7/2023
git commit --amend
Shell
복사
위 명령어로 커밋 메시지를 바꾸려다가, 스테이지에 파일을 올려놓는 바람에 덮어쓰기가 되어버렸음
알아보니 reflog로 복구할 수 있다고 함
현재 상태 - 원격 저장소랑 완전히 달라져버림
git reflog로 확인한 상태
9e54b40으로 옮기면 될 것 같음
일단 수정한 파일들을 다른 프로젝트로 임시로 옮김
아래 명령어 실행
git reset --hard 9e54b40
Shell
복사
원격과 같은 상태가 됨.
아래는 뒤틀린 후 메시지
메시지대로 git pull을 해도 똑같았을까? 궁금해짐
메시지를 바꿔서 커밋을 덮어쓴 후 pull 해봄
안됨. 찾아보니 아래처럼 해야함
git fetch --all # origin 저장소 단순 다운로드(merge나 rebase x) git branch backup-master # 브랜치 백업(master 브랜치 예시) git reset --hard origin/master # origin의 master 브랜치로 덮어쓰기
Shell
복사
어쨌든 git flog로 되돌린 후 아래처럼 원격 저장소로 밀어넣음
git push --force
Shell
복사
first commit → Initial commit으로 변경 성공