잃어버린 커밋 복원 - git reflog

1839 단어 gitreflogwebdev
당신이 당신의 프로젝트에서 일하고 있다고 상상해 봅시다.

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
grepgit reflog와 함께 사용하여 커밋 메시지나 브랜치 이름으로 검색할 수 있다는 것을 잊지 마세요…

멋지지만 git reflog에 몇 가지 단점이 있습니까?



Reflogs 또는 참조 로그는 컴퓨터에만 저장되므로 원격 리포지토리에서 푸시하거나 풀할 수 없습니다.

그리고 더 중요한 것은 git-gc(git 가비지 수집기)에 의해 잠시 후 만료된다는 것입니다.

만료된 항목은 삭제되며 구성 설정gc.reflogExpire에서 만료 시간을 가져옵니다(기본적으로 90일).

이에 대한 자세한 내용을 읽을 수 있습니다here.

데모




좋은 웹페이지 즐겨찾기