Français ▾ Topics ▾ Latest version ▾ git-ls-tree last updated in 2.42.0

NOM

git-ls-tree - Lister le contenu d’un objet arbre

SYNOPSIS

git ls-tree [-d] [-r] [-t] [-l] [-z]
	    [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>]
	    <arbre-esque> [<chemin>…​]

DESCRIPTION

Liste le contenu d’un objet arbre donné, comme le fait « /bin/ls -a » dans le répertoire de travail courant. Notez que :

  • le comportement est légèrement différent de celui de « /bin/ls » en ce que <chemin> désigne simplement une liste de motifs à faire correspondre, p. ex. spécifier un nom de répertoire (sans -r) se comportera différemment, et l’ordre des arguments n’a pas d’importance.

  • le comportement est similaire à celui de « /bin/ls » en ce que <chemin> est pris comme relatif au répertoire de travail courant. P. ex. quand vous êtes dans un répertoire sub qui a un répertoire dir, vous pouvez exécuter git ls-tree -r HEAD dir pour lister le contenu de l’arbre (c’est-à-dire sub/dir dans HEAD). Vous ne voulez pas donner un arbre qui n’est pas au niveau racine (p. ex. git ls-tree -r HEAD:sub dir) dans ce cas, car cela entraînerait une demande pour sub/sub/dir dans le commit HEAD. Cependant, le répertoire de travail courant peut être ignoré en passant l’option --full-tree.

OPTIONS

<arbre-esque>

Identifiant d’un arbre-esque.

-d

Afficher uniquement l’entrée d’arbre nommée elle-même, pas ses enfants.

-r

Parcourir récursivement les sous-arbres.

-t

Afficher les entrées d’arbre même lors de la récursion. N’a aucun effet si -r n’a pas été passé. -d implique -t.

-l
--long

Afficher la taille de l’objet des entrées blob (fichier).

-z

Terminer les lignes par \0 en sortie et ne pas mettre les noms de fichiers entre guillemets. Voir FORMAT DE SORTIE ci-dessous pour plus d’informations.

--name-only
--name-status

Lister uniquement les noms de fichiers (au lieu de la sortie « longue »), un par ligne. Ne peut pas être combiné avec --object-only.

--object-only

Lister uniquement les noms des objets, un par ligne. Ne peut pas être combiné avec --name-only ou --name-status. C’est équivalent à spécifier --format='%(objectname), mais pour cette option et ce format exact, la commande emprunte un chemin de code optimisé à la main au lieu de passer par le mécanisme de formatage générique.

--abbrev[=<n>]

Au lieu d’afficher le nom complet hexadécimal de 40 octets de l’objet, afficher le préfixe le plus court, d’une longueur d’au moins <n> chiffres hexadécimaux, qui renvoie à l’objet de manière unique. Le nombre de chiffres peut être spécifié avec --abbrev=<n>.

--full-name

Au lieu d’afficher les noms de chemin relatifs au répertoire de travail courant, afficher les noms de chemin complets.

--full-tree

Ne pas limiter la liste au répertoire de travail actuel. Implique --full-name.

--format=<format>

Une chaîne qui interpole %(fieldname) depuis le résultat affiché. Elle interpole aussi %% en %, et %xNNNN sont des chiffres hexadécimaux s’interpole en caractère avec le code hex NN ; par exemple %x00 s’interpole en \0 (NUL), %x09 en \t (TAB) et %x0a en \n (LF). Quand il est spécifié, --format ne peut pas être combiné avec d’autres options modifiant le format, y compris --long, --name-only et --object-only.

[<chemin>…​]

Quand des chemins sont donnés, les afficher (notez que ce ne sont pas vraiment des noms de chemin bruts, mais plutôt une liste de motifs à faire correspondre). Sinon, utilise implicitement le niveau racine de l’arbre comme seul argument de chemin.

Format de sortie

Le format de sortie de ls-tree est déterminé soit par l’option --format, soit par d’autres options modifiant le format comme --name-only etc. (voir --format ci-dessus).

L’utilisation de certaines directives --format est équivalente à l’utilisation de ces options, mais invoquer le mécanisme de formatage complet peut être plus lent que d’utiliser une option de formatage appropriée.

Dans les cas où --format correspondrait exactement à une option existante, ls-tree utilisera le chemin plus rapide approprié. Ainsi le format par défaut est équivalent à :

%(objectmode) %(objecttype) %(objectname)%x09%(path)

Ce format de sortie est compatible avec ce qu’attend --index-info --stdin de git update-index.

Quand l’option -l est utilisée, le format change en

%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)

La taille de l’objet identifié par <objectname> est donnée en octets, et justifiée à droite avec une largeur minimale de 7 caractères. La taille de l’objet n’est donnée que pour les entrées blob (fichier) ; pour les autres entrées, le caractère - est utilisé à la place de la taille.

Sans l’option -z, les noms de chemin avec des caractères « inhabituels » sont cités comme expliqué pour la variable de configuration core.quotePath (voir git-config[1]). Lors de l’utilisation de -z le fichier est affiché verbatim et la ligne est terminée par un octet NUL.

Format personnalisé :

Il est possible d’afficher dans un format personnalisé en utilisant l’option --format, qui peut interpoler différents champs en utilisant une notation %(fieldname). Par exemple, si vous ne vous intéressez qu’aux champs « objectname » et « path », vous pouvez exécuter avec un « --format » spécifique comme

git ls-tree --format='%(objectname) %(path)' <arbre-esque>

NOMS DE CHAMPS

Diverses valeurs provenant de champs structurés peuvent être utilisées pour interpoler dans la sortie résultante. Pour chaque ligne de sortie, les noms suivants peuvent être utilisés :

mode objet

Le mode de l’objet.

type-d-objet

Le type de l’objet (commit, blob ou tree).

nom-d-objet

Le nom de l’objet.

objectsize[:padded]

La taille d’un objet blob ("-" si c’est un commit ou un tree). Prend aussi en charge un format de taille avec rembourrage via "%(objectsize:padded)".

chemin

Le nom de chemin de l’objet.

GIT

Fait partie de la suite git[1]

TRADUCTION

Cette page de manuel a été traduite par Jean-Noël Avila <jn.avila AT free DOT fr> et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site https://github.com/jnavila/git-manpages-l10n .