Français ▾ Topics ▾ Latest version ▾ git-ls-files last updated in 2.55.0

NOM

git-ls-files - Affiche des informations sur les fichiers de l’index et de l’arbre de travail

SYNOPSIS

git ls-files [-z] [-t] [-v] [-f]
		[-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]
		[-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]
		[--resolve-undo]
		[--directory [--no-empty-directory]] [--eol]
		[--deduplicate]
		[-x <motif>|--exclude=<motif>]
		[-X <fichier>|--exclude-from=<fichier>]
		[--exclude-per-directory=<fichier>]
		[--exclude-standard]
		[--error-unmatch] [--with-tree=<arbre-esque>]
		[--full-name] [--recurse-submodules]
		[--abbrev[=<n>]] [--format=<format>] [--] [<fichier>…​]

DESCRIPTION

Cette commande fusionne la liste des fichiers de l’index avec la liste réelle du répertoire de travail, et affiche les différentes combinaisons des deux.

Plusieurs drapeaux peuvent être utilisés pour déterminer quels fichiers sont affichés, et chaque fichier peut étre affiché plusieurs fois s’il y a plusieurs entrées dans l’index ou si plusieurs statuts sont applicables pour les options de sélection de fichiers pertinentes.

OPTIONS

-c
--cached

Afficher tous les fichiers enregistrés dans l’index de Git, c’est-à-dire tous les fichiers suivis. (C’est la valeur par défaut si aucune option -c/-s/-d/-o/-u/-k/-m/--resolve-undo n’est spécifiée.)

-d
--deleted

Afficher les fichiers avec une suppression non validée

-m
--modified

Afficher les fichiers avec une modification non validée (notez qu’une suppression non validée compte également comme une modification non validée)

-o
--others

Afficher les autres fichiers (c’est-à-dire non suivis) dans la sortie

-i
--ignored

Afficher uniquement les fichiers ignorés dans la sortie. Doit être utilisé avec soit un -c explicite soit un -o. Lors de l’affichage des fichiers dans l’index (c’est-à-dire lorsqu’utilisé avec -c), n’afficher que les fichiers correspondant à un motif d’exclusion. Lors de l’affichage des fichiers "autres" (c’est-à-dire lorsqu’utilisé avec -o), n’afficher que ceux correspondant à un motif d’exclusion. Les règles d’ignorance standard ne sont pas activées automatiquement ; par conséquent, au moins une des options --exclude* est requise.

-s
--stage

Afficher les bits de mode, le nom d’objet et le numéro de stade du contenu validé dans la sortie.

--directory

Si un répertoire entier est classifié comme « autre », n’afficher que son nom (avec un slash final) et non tout son contenu. N’a aucun effet sans -o/--others.

--no-empty-directory

Ne pas lister les répertoires vides. N’a aucun effet sans --directory.

-u
--unmerged

Afficher les informations sur les fichiers non fusionnés dans la sortie, mais ne pas afficher les autres fichiers suivis (force --stage, écrase --cached).

-k
--killed

Afficher les fichiers non suivis sur le système de fichiers qui doivent être supprimés en raison de conflits fichiers/répertoires pour que les fichiers suivis puissent être écrits sur le système de fichiers.

--resolve-undo

Afficher les fichiers ayant des informations de résolution annulation dans l’index ensemble avec leurs informations de résolution annulation. (les informations de résolution annulation sont ce qui est utilisé pour implémenter "git checkout -m $PATH", c’est-à-dire pour recréer des conflits de fusion qui ont été accidentellement résolus)

-z

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

--deduplicate

Lorsque seuls les noms de fichiers sont affichés, supprimer les doublons pouvant provenir de plusieurs stades pendant une fusion, ou de l’utilisation simultanée des options --deleted et --modified. Lorsque l’une des options -t, --unmerged ou --stage est utilisée, cette option n’a aucun effet.

-x <motif>
--exclude=<motif>

Ignorer les fichiers non suivis correspondant au modèle. Notez que le modèle est un modèle joker shell. Voir MODÈLES D’EXCLUSION ci-dessous pour plus d’informations.

-X <fichier>
--exclude-from=<fichier>

Lire les modèles d’exclusion depuis <fichier> ; 1 par ligne.

--exclude-per-directory=<fichier>

Lire des modèles d’exclusion supplémentaires qui s’appliquent uniquement au répertoire et à ses sous-répertoires dans <fichier>. Si vous essayez d’émuler le fonctionnement des commandes Porcelaine, l’utilisation de l’option --exclude-standard à la place est plus facile et plus complète.

--exclude-standard

Ajouter les exclusions Git standard : .git/info/exclude, .gitignore dans chaque répertoire, et le fichier d’exclusion global de l’utilisateur.

--error-unmatch

Si un <fichier> n’apparaît pas dans l’index, traiter cela comme une erreur (retour 1).

--with-tree=<arbre-ish>

Lors de l’utilisation de --error-unmatch pour étendre les arguments <fichier> (c’est-à-dire modèle de chemin) fournis par l’utilisateur en chemins, faire comme si les chemins qui ont été supprimés dans l’index depuis le <arbre-esque> nommé étaient toujours présents. L’utilisation de cette option avec les options -s ou -u n’a aucun sens.

-t

Afficher les étiquettes de statut avec les noms de fichiers. Notez qu’à des fins de script, git-status[1] --porcelain et git-diff-files[1] --name-status sont presque toujours des alternatives supérieures ; les utilisateurs devraient consulter git-status[1] --short ou git-diff[1] --name-status pour des alternatives plus conviviales.

Cette option fournit une raison pour l’affichage de chaque nom de fichier, sous la forme d’une étiquette de statut (suivie d’un espace puis du nom de fichier). Les étiquettes de statut sont toutes des caractères uniques de la liste suivante :

H

fichier suivi qui n’est ni non fusionné ni skip-worktree

S

fichier suivi qui est skip-worktree

M

fichier suivi qui est non fusionné

R

fichier suivi avec suppression non validée

C

fichier suivi avec modification non validée

K

chemins non suivis qui font partie de conflits fichiers/répertoires qui empêchent l’extraction des fichiers suivis

?

fichier non suivi

U

fichier avec des informations resolve-undo

-v

Similaire à -t, mais utiliser des lettres minuscules pour les fichiers marqués comme « considérés inchangés » (voir git-update-index[1]).

-f

Similaire à -t, mais utiliser des lettres minuscules pour les fichiers marqués comme « fsmonitor valid » (voir git-update-index[1]).

--full-name

Lorsqu’elle est exécutée à partir d’un sous-répertoire, la commande produit généralement des chemins relatifs au répertoire actuel. Cette option force l’affichage des chemins relatifs au répertoire principal du projet.

--recurse-submodules

Appelle récursivement ls-files sur chaque sous-module actif dans le dépôt. Actuellement, seul les modes --cached et --stage sont supportés.

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

--debug

Après chaque ligne décrivant un fichier, ajouter plus de données sur son entrée en cache. Cela est destiné à afficher autant d’informations que possible pour l’inspection manuelle ; le format exact peut changer à tout moment.

--eol

Afficher <eolinfo> et <eolattr> des fichiers. <eolinfo> est l’identification du contenu de fichier utilisée par Git lorsque l’attribut "text" est "auto" (ou non défini et que core.autocrlf n’est pas faux). <eolinfo> est soit "-text", "none", "lf", "crlf", "mixed" soit "".

"" signifie que le fichier n’est pas un fichier régulier, qu’il n’est pas dans l’index ou n’est pas accessible dans l’arbre de travail.

<eolattr> est l’attribut utilisé lors de l’extraction ou de la validation, il est soit "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf". Depuis Git 2.10, "text=auto eol=lf" et "text=auto eol=crlf" sont pris en charge.

Le <eolinfo> dans l’index ("i/<eolinfo>") et dans l’arbre de travail ("w/<eolinfo>") sont tous deux affichés pour les fichiers réguliers, suivis de ("attr/<eolattr>").

--sparse

Si l’index est clairsemé, afficher les répertoires clairsemés sans les étendre aux fichiers contenus. Les répertoires clairsemés seront affichés avec une barre oblique finale, comme "x/" pour un répertoire clairsemé "x".

--format=<format>

Une chaîne qui interpole %(fieldname) à partir du résultat affiché. Elle interpole également %% en %, et %xXXXX sont des chiffres hexadécimaux interpole le caractère avec le code hexadécimal XX ; par exemple %x00 interpole en \0 (NUL), %x09 en \t (TAB) et %x0a en \n (LF). --format ne peut pas être combiné avec -s, -o, -k, -t, --resolve-undo et --eol.

--

Ne pas interpréter les arguments qui suivent comme options.

<fichier>

Fichiers à afficher. Si aucun fichier n’est donné, tous les fichiers correspondant aux autres critères spécifiés sont affichés.

SORTIE

git ls-files affiche simplement les noms de fichiers sauf si --stage est spécifié, auquel cas il affiche :

[<étiquette> ]<mode> <objet> <étape> <fichier>

git ls-files --eol affichera i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>

git ls-files --unmerged et git ls-files --stage peuvent être utilisés pour examiner les informations détaillées sur les chemins non fusionnés.

Pour un chemin non fusionné, au lieu d’enregistrer une seule paire mode/SHA-1, l’enregistrement indexé contient jusqu’à trois telles paires ; une de l’arbre O à l’étape 1, A à l’étape 2, et B à l’étape 3. Cette information peut être utilisée par l’utilisateur (ou le porcelaine) pour voir ce qui devrait finalement être enregistré au chemin. (voir git-read-tree[1] pour plus d’informations sur l’état)

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.

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-files --format='%(objectname) %(path)'

NOMS DE CHAMPS

La manière dont chaque chemin est affiché peut être personnalisée en utilisant l’option --format=<format>, où le %(fieldname) dans la chaîne <format> pour divers aspects de l’entrée d’index est interpolé. Les "fieldname" suivants sont reconnus :

mode objet

Le mode du fichier qui est enregistré dans l’index.

type-d-objet

Le type d’objet du fichier qui est enregistré dans l’index.

nom-d-objet

Le nom du fichier qui est enregistré dans l’index.

objectsize[:padded]

La taille de l’objet du fichier qui est enregistrée dans l’index ("-" si l’objet est un commit ou un tree). Elle supporte également un format de taille rembourré avec "%(objectsize:padded)".

étape

L’étape du fichier qui est enregistré dans l’index.

eolinfo:index
eolinfo:worktree

Le <eolinfo> (voir la description de l’option --eol) du contenu dans l’index ou dans l’arbre de travail pour le chemin.

eolattr

Le <eolattr> (voir la description de l’option --eol) qui s’applique au chemin.

chemin

Le nom de chemin du fichier qui est enregistré dans l’index.

MOTIFS D’EXCLUSION

git ls-files peut utiliser une liste de "motifs d’exclusion" lors de la traversée de l’arborescence de répertoires et de la recherche de fichiers à afficher lorsque les drapeaux --others ou --ignored sont spécifiés. gitignore[5] spécifie le format des motifs d’exclusion.

Ces motifs d’exclusion peuvent être spécifiés depuis l’une des places suivantes dans l’ordre :

  1. Le drapeau de ligne de commande --exclude=<motif> spécifie un seul motif. Les motifs sont ordonnés dans le même ordre qu’ils apparaissent dans la ligne de commande.

  2. Le drapeau de ligne de commande --exclude-from=<fichier> spécifie un fichier contenant une liste de motifs. Les motifs sont ordonnés dans le même ordre qu’ils apparaissent dans le fichier.

  3. Le drapeau de ligne de commande --exclude-per-directory=<nom> spécifie un nom de fichier dans chaque répertoire examiné par git ls-files, normalement .gitignore. Les fichiers dans les répertoires plus profonds ont la priorité. Les motifs sont ordonnés dans le même ordre qu’ils apparaissent dans les fichiers.

Un motif spécifié sur la ligne de commande avec --exclude ou lu depuis le fichier spécifié avec --exclude-from est relatif au sommet de l’arborescence de répertoires. Un motif lu depuis un fichier spécifié par --exclude-per-directory est relatif au répertoire dans lequel le fichier de motifs apparaît.

En général, vous devriez pouvoir utiliser --exclude-standard lorsque vous souhaitez que les règles d’exclusion soient appliquées de la même manière que ce que les commandes Porcelain font. Pour émuler ce que --exclude-standard spécifie, vous pouvez donner --exclude-per-directory=.gitignore, puis spécifier :

  1. Le fichier spécifié par la variable de configuration core.excludesfile, si elle existe, ou le fichier $XDG_CONFIG_HOME/git/ignore.

  2. Le fichier $GIT_COMMON_DIR/info/exclude.

via l’option --exclude-from= .

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 .