Tester des fichiers non existants
Dans les étapes précédentes, nous avons utilisé avec succès git ls-tree
et git log -- <file>
pour inspecter un fichier qui existe dans notre dépôt Git. Maintenant, voyons ce qui se passe lorsque nous essayons d'utiliser ces commandes sur un fichier qui n'existe pas dans l'historique du dépôt.
Assurez-vous que vous êtes dans le répertoire de votre projet :
cd ~/project/my-time-machine
Tout d'abord, essayons d'utiliser git ls-tree
sur un fichier non existant, par exemple, nonexistent.txt
:
git ls-tree HEAD nonexistent.txt
Vous ne devriez voir aucune sortie. C'est parce que git ls-tree
ne liste que les entrées présentes dans l'arbre spécifié (dans ce cas, l'arbre à HEAD
). Étant donné que nonexistent.txt
n'est pas dans l'arbre du dernier commit, il n'affiche rien.
Maintenant, essayons d'utiliser git log
sur le même fichier non existant :
git log -- nonexistent.txt
Vous devriez voir une sortie similaire à celle-ci :
fatal: no such path 'nonexistent.txt' in HEAD
C'est un comportement différent ! git log -- <file>
recherche spécifiquement les commits qui ont affecté le chemin de fichier donné tout au long de l'historique. Si le chemin de fichier n'a jamais existé dans aucun commit, Git vous indique qu'il n'y a "pas de tel chemin".
Cette différence de comportement met en évidence le fonctionnement de ces commandes :
git ls-tree
inspecte un instantané spécifique (commit) et liste son contenu.
git log -- <file>
recherche dans tout l'historique les modifications liées à un chemin de fichier spécifique.
Comprendre ces différences vous aide à choisir la bonne commande pour la tâche. Si vous voulez voir quels fichiers étaient dans un commit, utilisez git ls-tree
. Si vous voulez voir l'historique d'un fichier, utilisez git log -- <file>
.