Executando verificação de segurança...
2

Só pra complementar, na verdade git show faz um pouco mais do que apenas mostrar pastas e arquivos. De acordo com a documentação, ele serve para "mostrar vários tipos de objetos". Então o objeto pode ser um commit, uma tag, um arquivo, e cada um pode ser mostrado em um formato diferente.

O formato sha:path é apenas um dos muitos existentes, que no caso resultará em um arquivo ou diretório correspondente ao path, no estado em que estava no commit em questão. Se for um arquivo ou diretório, vai mostrar o conteúdo deste. Se for apenas um commit, ou qualquer coisa que resulte em um commit específico (como git show HEAD~3 para mostrar 3 commits antes do atual, ou git show algumbranch para mostrar o commit para o qual o branch aponta, etc), ele mostrará um resumo do commit (data, autor, mensagem, etc, e um diff das alterações).


Mas o problema é que primeiro você precisa descobrir em qual commit o arquivo/diretório foi apagado. Claro que vc pode pegar a lista de commits e ir olhando um a um, mas tem um jeito mais fácil de fazer isso com o próprio git log:

$ git log --all --name-status --oneline  -- arq.txt

Neste exemplo ele busca todos os commits no qual o arquivo arq.txt foi modificado de alguma maneira (mas vc também poderia usar o nome de um diretório). A saída será algo do tipo:

6862011 Apagar arq.txt
D       arq.txt
e9b6312 Modificar arq.txt
M       arq.txt
17d52c1 Criar arq.txt
A       arq.txt

A indica quando o arquivo foi adicionado (acima seria no commit 17d52c1 - lembrando que a saída mostra os hashes abreviados), M é quando ele foi modificado (commit e9b6312) e D é quando ele foi deletado (commit 6862011).


Por fim, vale lembrar que desde 2019 existe o comando restore, como alternativa ao checkout. No caso, o equivalente para trazer de volta a pasta seria:

git restore -s sha1_commit --staged  -- pasta_ou_arquivo
Carregando publicação patrocinada...