Os arquivos que foram excluídos da cópia local de um repositório podem ser recuperados do git.
git ls-files -d | xargs git checkout
Este exemplo mostra primeiro um repositório git sendo atualizado, isso é feito chamando o comando git status. Um arquivo é excluído na unidade local. Em seguida, o comando git status é chamado novamente e mostra que o arquivo que acabamos de excluir está faltando. Em seguida, o comando git ls-files é chamado com o parâmetro -d para listar todos os arquivos excluídos. Essa lista é canalizada para um comando git checkout para recuperar o arquivo do repositório. Finalmente, o comando git status é chamado e mostra que o repositório está atualizado e o arquivo que foi excluído anteriormente foi restaurado do repositório. A versão do arquivo restaurado é a mais recente que foi confirmada no Git. Se a versão mais recente do arquivo não foi confirmada, essas modificações não serão aceitas.
$ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean $ rm logs/donotremove.txt $ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add/rm..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) deleted: logs/donotremove.txt no changes added to commit (use "git add" and/or "git commit -a") $ git ls-files -d | xargs git checkout $ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean