Comprometi um arquivo no meu git local e o enviei para o github.
Executei os seguintes comandos para remover esse arquivo e, em seguida, enviei-o para o github:
git rm file.txt
git commit -m remove file.txt
git push -u github master
Percebi então que quero o arquivo de volta. Eu tentei as instruções descritas aqui: https://www.quora.com/How-can-I-recover-a-file-I-deleted-in-my-local-repo-from-the-remote-repo-in -Git
Executei o seguinte comando:
git rev-list -n 1 HEAD -- file.txt
que me deu um hash para a versão que tinha meu arquivo: HASH. Que eu então usei no seguinte comando:
git checkout HASH^ file.txt
Que então me deu o seguinte erro:
error: pathspec 'file.txt' did not match any file(s) known to git
Felizmente, consegui ir ao github e recuperar todos os meus arquivos de lá, mas ainda não sei como fazer isso localmente, ou mesmo se é possível.
Use
git reflog
para obter o hash de confirmação para o ponto que tinha seu arquivo. Em seguida, usegit checkout <hash>
para voltar ao hash de confirmação.Como alternativa, você pode usar
git checkout HEAD{1}
para voltar um commit.