Comment vérifier si un dépôt Git a des fichiers non suivis

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à identifier les fichiers non suivis (untracked files) dans un dépôt Git. Comprendre les fichiers non suivis est essentiel pour gérer l'état de votre projet et vous assurer que seuls les fichiers pertinents sont inclus dans le contrôle de version.

Nous commencerons par utiliser la commande fondamentale git status pour lister les fichiers non suivis et comprendre sa sortie. Ensuite, nous explorerons la commande git ls-files --others, qui offre un moyen plus direct de lister les fichiers non suivis. Enfin, nous aborderons brièvement comment prendre en compte les fichiers ignorés dans ce processus.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/BasicOperationsGroup -.-> git/status("Check Status") subgraph Lab Skills git/config -.-> lab-560093{{"Comment vérifier si un dépôt Git a des fichiers non suivis"}} git/status -.-> lab-560093{{"Comment vérifier si un dépôt Git a des fichiers non suivis"}} end

Exécuter git status pour lister les fichiers non suivis

Dans cette étape, nous apprendrons à utiliser la commande git status pour voir quels fichiers dans notre répertoire de projet ne sont pas suivis par Git. Il s'agit d'une commande fondamentale pour comprendre l'état de votre dépôt.

Tout d'abord, assurez-vous que vous êtes dans votre répertoire de projet. Si vous avez suivi le laboratoire précédent, vous devriez être dans le répertoire ~/project/my-time-machine. Vous pouvez vérifier votre répertoire actuel en utilisant la commande pwd :

pwd

La sortie devrait être similaire à :

/home/labex/project/my-time-machine

Maintenant, créons un nouveau fichier dans ce répertoire. Nous l'appellerons notes.txt :

echo "Some random notes" > notes.txt

Cette commande crée un fichier nommé notes.txt et écrit le texte "Some random notes" dedans.

Maintenant, exécutons git status pour voir comment Git voit ce nouveau fichier :

git status

Vous devriez voir une sortie similaire à celle-ci :

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

no changes added to commit (use "git add" and/or "git commit -a")

Remarquez la section "Untracked files:" (fichiers non suivis). Git nous indique que notes.txt est un fichier non suivi. Cela signifie que Git voit le fichier, mais ne gère pas actuellement ses versions. Git n'inclura pas ce fichier dans les commits à moins que vous ne lui demandiez explicitement de le faire.

Comprendre les fichiers non suivis est important car cela vous aide à garder votre dépôt propre et à ne suivre que les fichiers qui font partie de votre projet. Les fichiers temporaires, les artefacts de construction ou les notes personnelles ne sont souvent pas suivis.

Utiliser git ls-files --others pour vérifier

Dans l'étape précédente, nous avons utilisé git status pour voir les fichiers non suivis. Bien que git status donne une bonne vue d'ensemble de l'état du dépôt, parfois vous pourriez vouloir une liste plus simple ne contenant que les fichiers non suivis. C'est là que git ls-files --others s'avère pratique.

Assurez-vous que vous êtes toujours dans le répertoire ~/project/my-time-machine.

Maintenant, exécutez la commande suivante :

git ls-files --others

Vous devriez voir la sortie suivante :

notes.txt

Cette commande liste tous les fichiers dans votre répertoire de travail qui ne sont pas suivis par Git. C'est un moyen plus direct de voir uniquement les fichiers non suivis par rapport à la sortie détaillée de git status.

L'option --others indique à git ls-files de ne lister que les fichiers qui ne font pas partie de l'index Git (c'est-à-dire non suivis). Cela est utile pour les scripts ou lorsque vous avez besoin d'une liste rapide de ce qui est nouveau et non suivi dans votre projet.

Vous vous demandez peut-être pourquoi utiliser git ls-files --others plutôt que git status. Alors que git status fournit une vue complète incluant les fichiers modifiés et mis en attente (staged), git ls-files --others est spécifiquement conçu pour lister uniquement les fichiers non suivis. Cela peut être très utile lorsque vous voulez traiter ou gérer les fichiers non suivis de manière programmée, par exemple, dans un script qui nettoie les fichiers temporaires.

Combinaison avec la vérification des fichiers ignorés

Dans les étapes précédentes, nous avons appris à identifier les fichiers non suivis en utilisant git status et git ls-files --others. Cependant, parfois, vous avez des fichiers que vous ne voulez intentionnellement pas que Git suive, comme des fichiers temporaires, des sorties de construction ou des fichiers de configuration contenant des informations sensibles. Git vous permet de spécifier ces fichiers dans un fichier .gitignore.

Dans cette étape, nous allons créer un fichier .gitignore et voir comment cela affecte la sortie de git status et git ls-files --others.

Tout d'abord, assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine.

Maintenant, créons un fichier que nous voulons ignorer. Nous l'appellerons temp.log :

echo "This is a temporary log file" > temp.log

Exécutons à nouveau git status :

git status

Vous devriez voir à la fois notes.txt et temp.log listés comme fichiers non suivis :

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt
        temp.log

no changes added to commit (use "git add" and/or "git commit -a")

Maintenant, créons un fichier .gitignore et ajoutons temp.log dedans. Utilisez l'éditeur nano pour créer et éditer le fichier :

nano .gitignore

À l'intérieur de l'éditeur nano, tapez la ligne suivante :

temp.log

Appuyez sur Ctrl + X, puis sur Y pour enregistrer, et sur Enter pour confirmer le nom du fichier.

Maintenant, exécutons git status une fois de plus :

git status

Cette fois, temp.log ne devrait plus apparaître dans la liste "Untracked files:" (fichiers non suivis) :

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   message.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

no changes added to commit (use "git add" and/or "git commit -a")

Git sait maintenant ignorer temp.log. Voyons également comment git ls-files --others est affecté :

git ls-files --others

La sortie devrait maintenant n'afficher que notes.txt :

notes.txt

Par défaut, git ls-files --others ne liste pas les fichiers ignorés. C'est généralement le comportement souhaité, car vous ne voulez généralement pas voir les fichiers que vous avez explicitement demandé à Git d'ignorer.

Si vous voulez voir les fichiers ignorés ainsi que les autres fichiers non suivis, vous pouvez utiliser l'option --ignored avec git ls-files --others :

git ls-files --others --ignored

La sortie inclura maintenant à la fois les fichiers non suivis et les fichiers ignorés :

.gitignore
notes.txt
temp.log

Notez que le fichier .gitignore lui-même est un fichier non suivi jusqu'à ce que vous l'ajoutiez et le validiez (commit).

Comprendre comment utiliser le fichier .gitignore est crucial pour garder votre dépôt propre et concentré sur les fichiers réels du projet. Cela empêche les validations accidentelles de fichiers qui ne devraient pas être sous contrôle de version.

Résumé

Dans ce laboratoire (lab), nous avons appris à identifier les fichiers non suivis dans un dépôt Git. Nous avons commencé par utiliser la commande fondamentale git status, qui fournit une vue d'ensemble complète de l'état du dépôt, y compris une section dédiée aux fichiers non suivis. Cette commande est essentielle pour comprendre quels fichiers Git ne gère pas actuellement.

Nous avons ensuite exploré la commande git ls-files --others comme méthode alternative pour lister les fichiers non suivis. Cette commande offre une sortie plus simple, ne listant que les fichiers non suivis eux-mêmes. Bien que le contenu complet de la troisième étape ne soit pas fourni, le titre suggère qu'elle impliquerait de combiner cette vérification avec la prise en compte des fichiers ignorés, qui sont des fichiers intentionnellement exclus du suivi par Git via un fichier .gitignore.