잃어버린 커밋 복원 - git reflog
git reset --hard HEAD~N
그런 다음 실수로 Enter ↩️를 눌렀을 수도 있습니다..
기본적으로 이것은 마지막 N 커밋을 잃어버렸고 지금은 깨끗한 작업 트리가 있음을 의미합니다.
두려워하지 마십시오. 이 상황에 대한 해결책이 있습니다.
git reflog 소개
The reflog is strictly local and isn’t part of the repository. It’s also not included in pushes, fetches, or clones. Git uses the git reflog tool to keep track of changes made to branch tips. It lets you go back to any commit, even if it isn’t referenced by any branch or tag
reflog에 대한 자세한 내용은 Gitprotect에서 읽을 수 있습니다.
그렇다면 잃어버린 커밋을 복원하는 방법은 무엇입니까?
잃어버린 커밋을 복원하려면 다음을 사용하십시오.
로컬 변경 사항을 보려면 git reflog:
여기에서 기본적으로 Git에서 로컬로 기록된 작업을 볼 수 있습니다.
그런 다음 돌아가고 싶은 커밋의 SHA를 선택한 다음 다음을 실행할 수 있습니다.
git reset --hard e4dd6f6
또는
git cherry-pick e4dd6f6
grep
를 git reflog
와 함께 사용하여 커밋 메시지나 브랜치 이름으로 검색할 수 있다는 것을 잊지 마세요…멋지지만 git reflog에 몇 가지 단점이 있습니까?
Reflogs 또는 참조 로그는 컴퓨터에만 저장되므로 원격 리포지토리에서 푸시하거나 풀할 수 없습니다.
그리고 더 중요한 것은 git-gc(git 가비지 수집기)에 의해 잠시 후 만료된다는 것입니다.
만료된 항목은 삭제되며 구성 설정
gc.reflogExpire
에서 만료 시간을 가져옵니다(기본적으로 90일).이에 대한 자세한 내용을 읽을 수 있습니다here.
데모
Reference
이 문제에 관하여(잃어버린 커밋 복원 - git reflog), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ismailbenhallam/restore-lost-commits-git-reflog-o76텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)