Les fichiers qui ont été supprimés de la copie locale d'un repository peuvent être récupérés à partir de git.
git ls-files -d | xargs git checkout
Cet exemple montre d'abord qu'un dépôt git est à jour, ceci est fait en appelant la commande git status. Un fichier est supprimé sur le lecteur local. Ensuite, la commande git status est appelée à nouveau et montre que le fichier que nous venons de supprimer est manquant. Ensuite, la commande git ls-files est appelée avec le paramètre -d pour lister tous les fichiers supprimés. Cette liste est redirigée vers une commande git checkout pour récupérer le fichier du référentiel. Enfin, la commande git status est appelée et indique que le référentiel est à jour et que le fichier précédemment supprimé a été restauré à partir du référentiel. La version du fichier restaurée est la dernière qui a été validée dans Git. Si la dernière version du fichier n'a pas été validée, ces modifications ne sont pas récupérées.
$ 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