Exécuter git ls-tree
sur une branche et un fichier
Dans cette étape, nous allons explorer comment afficher le contenu d'une branche et d'un fichier spécifiques dans votre dépôt Git en utilisant la commande git ls-tree
. Cette commande est utile pour inspecter l'état de votre projet à un point particulier de l'historique ou sur une autre branche sans réellement basculer vers cette branche.
Tout d'abord, assurons-nous que nous sommes dans le répertoire de notre projet.
cd ~/project/my-time-machine
Maintenant, créons une nouvelle branche appelée feature-branch
et basculons vers elle. Nous allons y ajouter un nouveau fichier.
git branch feature-branch
git checkout feature-branch
echo "This is a new feature." > feature.txt
git add feature.txt
git commit -m "Add new feature file"
Vous devriez voir une sortie similaire à celle-ci après le commit :
[feature-branch a1b2c3d] Add new feature file
1 file changed, 1 insertion(+)
create mode 100644 feature.txt
Maintenant, nous avons une nouvelle branche feature-branch
avec un fichier feature.txt
qui n'existe pas sur la branche master
.
Basculez de nouveau vers la branche master
.
git checkout master
Vous devriez voir une sortie indiquant que vous avez basculé de branche :
Switched to branch 'master'
Notez que le fichier feature.txt
n'est plus visible dans votre répertoire actuel car vous êtes sur la branche master
.
Maintenant, utilisons git ls-tree
pour voir le contenu de la branche feature-branch
et plus précisément le fichier feature.txt
depuis la branche master
sans revenir en arrière.
La syntaxe de base de git ls-tree
est git ls-tree <tree-ish> <path>
. <tree-ish>
peut être un nom de branche, un hash de commit ou une étiquette (tag). <path>
est le chemin du fichier ou du répertoire que vous souhaitez inspecter.
Pour afficher le contenu du répertoire racine de la branche feature-branch
, vous pouvez utiliser :
git ls-tree feature-branch
Vous devriez voir une sortie similaire à celle-ci, montrant les fichiers à la racine de feature-branch
:
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
100644 blob f9e8d7c6b5a4938271605f4e3d2c1b0a98765432 message.txt
Cette sortie montre le mode de fichier, le type d'objet (blob pour fichier), le hash de l'objet et le nom du fichier.
Pour afficher les détails d'un fichier spécifique, comme feature.txt
, sur la branche feature-branch
, vous pouvez utiliser :
git ls-tree feature-branch feature.txt
Vous devriez voir une sortie similaire à celle-ci, spécifiquement pour feature.txt
:
100644 blob a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 feature.txt
Cette commande vous permet de jeter un coup d'œil à d'autres branches ou à des commits passés pour voir l'état de fichiers spécifiques sans changer votre répertoire de travail actuel. Cela est incroyablement utile pour comparer des fichiers entre les branches ou inspecter des versions historiques.