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
Où 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.