Cet article fait partie d’une longue série en cours d’écriture consacrée à git.

Trouver la date de suppression et la révision d’un fichier supprimé dans git

Un fichier a été supprimé de votre dépôt git. Vous avez besoin de savoir quand, par qui et pourquoi il a été effacé ? Pas besoin d’aller regarder le détail de tous les commits. Voici comment faire.

Pour ce faire, on va utiliser la commande git log et son argument --full-history. Ce dernier est important car il évite une simplification de l’historique que peut faire git lorsqu’il y a des branches qui sont mergées… et le commit en question pourrait tout simplement ne pas apparaître dans certaines conditions. L’argument --all permet de rechercher dans toutes les branches.

git log --all --full-history -1 -- chemin/vers/mon/fichier_supprimé.txt

Et comme la suppression du fichier est forcément la dernière action effectuée, on n’affiche qu’un résultat via l’argument -1.

Si on ne connait pas le chemin ou nom exact, on pourra utiliser des * dans le nom.

git log --all --full-history -- \*\*/fichier\*supprim\*.txt

Si on a ensuite besoin de voir son contenu, rien de plus simple :

git show c0ebda56 -- chemin/vers/mon/fichier_supprimé.txt

c0ebda56 représente le hash de mon commit précédemment trouvé.

On peut également le restaurer dans la copie de travail :

git checkout c0ebda56^ -- chemin/vers/mon/fichier_supprimé.txt

Le symbole ^ permet de faire le checkout juste avant le commit trouvé, puisque ce dernier est le commit où le fichier est supprimé, il faut donc prendre le commit précédent.