파일을 로컬 git에 커밋한 다음 github에 푸시했습니다.
해당 파일을 제거하기 위해 다음 명령을 수행한 다음 github에 푸시했습니다.
git rm file.txt
git commit -m remove file.txt
git push -u github master
그런 다음 파일을 다시 원한다는 것을 깨달았습니다. 여기에 설명된 지침을 시도해 보았습니다. https://www.quora.com/How-can-I-recover-a-file-I-deleted-in-my-local-repo-from-the-remote-repo-in-Git
다음 명령을 실행했습니다.
git rev-list -n 1 HEAD -- file.txt
내 파일이 있는 버전에 대한 해시를 제공했습니다: HASH. 그런 다음 다음 명령에서 사용했습니다.
git checkout HASH^ file.txt
그러면 다음과 같은 오류가 발생했습니다.
error: pathspec 'file.txt' did not match any file(s) known to git
운 좋게도 github에 가서 모든 파일을 복구할 수 있었지만 여전히 로컬에서 수행하는 방법이나 가능한지 여부를 모릅니다.
답변1
git reflog
파일이 있는 지점에 대한 커밋 해시를 가져오는 데 사용합니다 . 그런 다음 git checkout <hash>
해당 커밋 해시로 돌아가는 데 사용합니다.
git checkout HEAD{1}
또는 을 사용하여 한 커밋으로 돌아갈 수 있습니다 .