Comment voir l'état Git dans un gestionnaire de fichiers sur Mac

Vous parcourez le dossier d'un projet et voulez savoir où il en est : sur quelle branche vous êtes, quels fichiers ont changé depuis le dernier commit, quels nouveaux fichiers Git ne suit pas encore. Le Finder ne vous le dira pas : le détour habituel passe par un terminal, un cd et un git status, ou par votre éditeur de code.
La réponse courte : le Finder ne montre rien de Git, sauf si vous ajoutez une app qui pose des pastilles sur les fichiers par une extension du Finder. Dans le Terminal, git status -sb dans le dossier du projet donne la branche et une ligne par modification. Dans Folia Files, ouvrez le projet dans un panneau : la branche apparaît dans l'en-tête du panneau, et dans les vues Liste, Liste détaillée et Arborescence, chaque fichier et dossier modifié reçoit une lettre : M modifié, A ajouté, R renommé, U non suivi, ! en conflit.
Pourquoi le Finder ne montre rien
Un dépôt Git est un dossier ordinaire, avec un dossier caché .git à l'intérieur. ⇧⌘. fait apparaître ce dossier dans le Finder, mais le Finder ne le lit pas : aucune colonne, pastille ou étiquette ne dit qu'un fichier a changé depuis le dernier commit, et rien ne montre la branche.
macOS permet bien à d'autres apps de dessiner des pastilles sur les fichiers des fenêtres du Finder, par une extension Finder Sync, et quelques outils Git font ainsi. Une telle extension ne couvre que les dossiers qu'elle déclare, et ne montre rien tant que vous ne l'avez pas autorisée dans les Réglages Système.
Dans le Terminal : git status
Le format court
Dans un terminal ouvert dans le dossier du projet, git status décrit chaque modification en phrases complètes. Sa forme courte tient sur un écran :
git status -sb
-s donne une ligne par modification, -b ajoute la branche en tête. Pour le projet Atlas des captures ci-dessous, il répond :
## photo-pins...origin/photo-pins [ahead 2]
M README.md
M Sources/Atlas/MapView.swift
A Sources/Atlas/PhotoPin.swift
R Tests/AtlasTests.swift -> Tests/MapTests.swift
?? Notes/
La première ligne nomme la branche, la branche distante qu'elle suit, et le nombre de commits que vous n'avez pas encore poussés (ahead) ou récupérés (behind). Chaque ligne suivante commence par deux colonnes : la première pour ce qui est indexé, déjà ajouté avec git add, la seconde pour ce qui a changé depuis. M veut dire modifié, A ajouté, R renommé, D supprimé, ?? non suivi, et UU un conflit laissé par une fusion.
Seulement la branche
git branch --show-current affiche le nom de la branche, seul. Beaucoup de configurations du shell, comme les thèmes d'Oh My Zsh ou l'invite Starship, mettent aussi la branche dans l'invite.
Un shell dans le bon dossier, c'est la moitié du travail : comment ouvrir le Terminal dans le dossier courant présente les façons du Finder et celles de Folia Files.
Dans votre éditeur de code
Les éditeurs de code montrent la même information, dans leurs propres fenêtres. VS Code met une lettre après chaque fichier modifié dans son explorateur (Explorer) et liste les modifications dans sa vue Source Control (⌃⇧G) ; Xcode marque les fichiers modifiés d'un M ou d'un A dans son navigateur de projet (Project navigator). Encore faut-il d'abord ouvrir le projet dans l'éditeur : comment ouvrir un dossier dans VS Code, Cursor ou Xcode donne les façons les plus courtes.
L'état Git dans les panneaux de Folia Files
Folia Files lit l'état lui-même et le montre là où vous naviguez, à côté de vos autres dossiers.

La branche, dans l'en-tête du panneau
Quand un panneau montre un dossier d'un dépôt Git, à sa racine ou n'importe où plus bas, l'en-tête affiche une petite capsule entre le chemin et les boutons des vues : l'icône de branche et le nom de la branche, puis ↑2 pour deux commits à pousser, ↓ suivi d'un nombre pour les commits à récupérer, et un point orange avec le nombre de modifications, comme dans photo-pins ↑2 ● 5 (un dossier non suivi compte pour une). Elle reste là dans chacune des neuf vues du panneau. Dans un panneau étroit, c'est elle qui cède la place la première : elle passe dans le menu … de l'en-tête, sous le nom Branche photo-pins.
Une lettre sur chaque modification
Dans les vues Liste, Liste détaillée et Arborescence, et dans les cartes de la vue Branches, chaque fichier modifié reçoit une lettre en couleur au bout de sa ligne :
- M, orange : modifié.
- A, vert : ajouté, un nouveau fichier indexé avec
git add. - R, turquoise : renommé.
- U, vert : non suivi, nouveau pour Git. Un dossier non suivi et tout ce qu'il contient reçoivent le U.
- !, rouge : en conflit après une fusion.
Le nom du fichier prend une nuance de la même couleur. Un dossier reçoit la lettre de la modification la plus importante qu'il contient (un conflit d'abord, puis un ajout, un renommage, une modification, un fichier non suivi) : dans la vue Arborescence, un dossier fermé vous dit déjà qu'il y a quelque chose à regarder. Un fichier supprimé n'est plus dans son dossier pour porter une lettre : le dossier affiche M, et le menu de la branche liste le fichier. Les fichiers exclus par .gitignore ne reçoivent pas de lettre, comme dans git status.
Il y a une lettre par fichier là où git status a deux colonnes : savoir si une modification est déjà indexée, c'est à git status de le dire. Les vues Icônes, Colonnes, Galerie et Mosaïque montrent la branche dans l'en-tête, sans les lettres.
Le menu de la branche
Cliquez sur la capsule pour ouvrir son menu : la branche et la branche distante qu'elle suit, les commits à pousser et à récupérer, puis les fichiers modifiés avec leur lettre, par chemin depuis la racine du dépôt (30 au plus, les fichiers supprimés grisés). Choisissez-en un, et le panneau va dans son dossier, le fichier sélectionné. En bas : Aller à la racine du dépôt, Copier le nom de la branche et Actualiser.

En lecture seule, sans vous gêner
Folia Files ne fait que lancer git status, en arrière-plan. Il n'ajoute jamais rien à l'index, ne fait aucun commit, ne récupère rien, et lance git status avec GIT_OPTIONAL_LOCKS=0. La documentation de Git décrit cette variable pour les outils qui travaillent en arrière-plan : sans elle, git status peut prendre un instant le verrou de l'index du dépôt pour le rafraîchir, et un git commit tapé à ce moment-là peut s'arrêter sur « Another git process seems to be running in this repository ».
L'état est relu quand des fichiers changent dans le dossier du panneau, un instant après que vous en avez enregistré un ; Actualiser le relit à tout moment. Les nombres ↑ et ↓ comparent votre branche à la branche distante telle qu'elle était à votre dernier git fetch ou git pull : Folia Files ne contacte jamais le dépôt distant.
Ce qu'il faut
- Git sur le Mac. Folia Files se sert du
gitdéjà installé : celui de Homebrew, ou celui qui vient avec Xcode ou ses outils en ligne de commande (Command Line Tools). Sur un Mac qui n'a aucun des deux, il ne montre rien, et ne fait jamais apparaître la proposition de macOS d'installer les outils de développement.xcode-select --installdans le Terminal les installe. - Le réglage. Réglages › Panneaux, section Contenu : Afficher l'état Git (branche et fichiers modifiés), activé d'office. Désactivez-le pour cacher la branche et les lettres partout.
- Un dossier de ce Mac. Les dossiers d'un serveur ou d'un disque réseau n'ont pas d'état Git : un serveur lent ne retient jamais un panneau. Un dépôt à la racine de votre dossier personnel, du genre qui garde les fichiers de configuration (« dotfiles »), est ignoré, sinon chaque fichier recevrait une lettre. Un dépôt dont le
git statusprend plus de quelques secondes ne montre rien.
Agir depuis la même fenêtre
Ce que vous voyez dans le panneau appelle souvent un commit ou un coup d'œil à un diff :
- Ouvrir dans l'éditeur, dans le menu contextuel du dossier du projet ou d'un endroit vide de son panneau, liste les éditeurs de code installés sur votre Mac, VS Code, Cursor, Xcode et d'autres, et ouvre le dossier dans celui que vous choisissez.
- Dans l'édition du site, ⌥⌘T ou Présentation › Terminal ouvre un terminal sous le panneau, dans son dossier ; avec Suivre le panneau coché, il suit le panneau de dossier en dossier. La commande toute faite État Git, dans le sous-menu Commandes du menu contextuel, tape
git statusdans ce terminal. La page du terminal intégré montre le reste.

Dans l'édition du Mac App Store
La sandbox d'Apple ne laisse pas l'édition App Store lancer git elle-même. L'état Git y vient avec Folia Files Companion, l'app d'appoint gratuite de cette édition, qui lance git status pour elle ; sans le compagnon, ni la branche, ni les lettres, ni le réglage n'apparaissent. Le terminal intégré et les commandes n'existent que dans l'édition du site ; Ouvrir dans l'éditeur est dans les deux.
Quelle façon choisir
- Un coup d'œil de temps en temps :
git status -sbdans un terminal ouvert dans le projet. - Pendant que vous écrivez du code : la vue Source Control de votre éditeur.
- Pendant que vous parcourez, triez et déplacez des fichiers : la branche dans l'en-tête du panneau et les lettres dans la liste, avec l'éditeur et le terminal à un clic.


