Modifications Git
Git changes (Modifications Git) montre ce qui diffère dans le dépôt git du dossier de travail de la conversation : la branche, chaque fichier modifié et un diff pour chacun. Servez-vous-en pour relire le travail d’un agent avant de lui demander de commiter. C’est une visionneuse. Seul le bouton ⬇ Pull modifie quelque chose.
L’ouvrir #
Ouvrez le menu ⋯ de la conversation et choisissez 🌿 Git changes. Une fenêtre
s’ouvre par-dessus la conversation. Elle lit le dossier sur l’hôte du relais,
donc vous voyez la même chose depuis n’importe quel navigateur.
L’entrée figure dans le menu de toute conversation ouverte. Elle est masquée quand aucune conversation n’est ouverte et dans la vue partagée en lecture seule.
Quel dépôt #
La fenêtre exécute git dans le dossier de travail de la conversation, celui que vous avez choisi dans la boîte de dialogue New chat (Nouveau chat) ou défini avec 🗂️ Change CWD (Changer le dossier de travail). Git trouve le dépôt à partir de là, comme dans un terminal : un dossier situé dans un dépôt affiche ce dépôt.
Si git ne trouve aucun dépôt, l’en-tête indique Not a git repository et la
liste The current workspace root is not a git repository. Le bouton ⬇ Pull
est désactivé. Un dossier qui contient seulement plusieurs dépôts côte à côte
n’est pas lui-même un dépôt : il reçoit donc ce message aussi. Démarrez une
conversation dans le dépôt que vous voulez relire.
Dossier de travail sous la racine du dépôt
Quand le dossier de travail est un sous-dossier d’un dépôt, la liste montre
quand même les modifications de tout le dépôt, et pas seulement celles de ce
sous-dossier. Ouvrir un fichier depuis la liste ne fonctionne pas : chaque diff
indique No textual changes detected for this file. Démarrez la conversation
dans le dossier racine du dépôt pour obtenir des diffs qui fonctionnent.
Un dépôt qui n’a encore aucun commit affiche le nom de sa branche, et ses
fichiers indexés sont listés. Le diff d’un fichier indexé y échoue avec le
message de git fatal: bad revision 'HEAD'. Les diffs des fichiers non suivis
fonctionnent.
L’en-tête #
L’en-tête affiche la branche et, à côté, son écart avec sa branche amont :
| En-tête | Signification |
|---|---|
main |
La branche, à égalité avec sa branche amont ou sans branche amont. |
main ↑2 |
Deux commits d’avance sur l’amont : pas encore poussés. |
main ↓3 |
Trois commits de retard sur l’amont. |
main ↑2 ↓3 |
Les deux. |
detached HEAD |
Un commit est extrait, et non une branche. |
Sous la branche, une seconde ligne indique la branche amont et le nombre de
fichiers modifiés, comme origin/ (1 changed file pour
un seul). Une branche sans amont n’affiche ni flèches ni nom d’amont, seulement
le nombre. Les nombres sont ceux que git connaissait en dernier : OAR ne fait
pas de fetch, donc ↓ ne change qu’après un fetch ou un pull.
Pull #
⬇ Pull exécute un simple git pull dans le dossier, sans option. Son
info-bulle indique « Pull from upstream », mais OAR ne nomme ni remote ni
branche. Que le pull fusionne, rebase ou ne fasse qu’une avance rapide dépend
de votre configuration git (pull., pull.). Le bouton est toujours
proposé quand le dossier est un dépôt, même quand il n’y a rien à récupérer, et
il est désactivé pendant le chargement de la fenêtre ou pendant un pull (il
indique alors Pulling…). Un pull peut durer jusqu’à 120 secondes.
À la fin, une ligne sous l’en-tête indique Pull: suivi de la dernière ligne
de la sortie de git (par exemple Pull: Already up to date.), ou Pull complete. quand git n’a rien affiché. Si git refuse, la ligne
est rouge et indique Pull failed: suivi du message de git lui-même. C’est ce
que vous voyez en cas de conflit, de modifications locales qu’un pull
écraserait, ou de branche sans amont. OAR ne fait ni stash, ni reset, ni
résolution. Demandez à l’agent de régler cela. La liste est rechargée après
chaque pull.
La liste #
Chaque fichier modifié occupe une ligne : les fichiers indexés, non indexés et non suivis ensemble, triés par chemin. Une ligne affiche :
- un badge à une lettre pour l’état, et le nom du fichier avec son dossier en dessous ;
- pour un fichier renommé, l’ancien chemin après un
←; - les fichiers supprimés avec le nom barré.
Un nouveau dossier que git ne suit pas encore forme une seule ligne pour tout
le dossier, et non une par fichier qu’il contient. Son nom est vide et le
chemin du dossier s’affiche en dessous. L’ouvrir affiche
No textual changes detected for this file.
| Badge | Signification |
|---|---|
| M | Modifié |
| A | Ajouté |
| D | Supprimé |
| R | Renommé |
| C | Copié |
| T | Type modifié |
| U | Non suivi : un nouveau fichier que git ne suit pas encore |
Un fichier modifié après avoir été indexé n’apparaît qu’une fois, avec l’état de la copie de travail. La liste ne distingue pas les modifications indexées des non indexées. Survolez une ligne pour voir l’état en toutes lettres et le chemin complet.
Fichiers en conflit
Un fichier en conflit de fusion n’a pas de badge propre. Un fichier modifié des
deux côtés (UU dans git) affiche U et le mot Untracked (Non suivi), bien
qu’il soit suivi. Un fichier ajouté des deux côtés affiche A, un fichier
supprimé des deux côtés affiche D, et un fichier supprimé d’un seul côté
affiche D (barré) ou U, selon le côté. Son diff s’ouvre quand même et le
compare au dernier commit. Utilisez git status dans un terminal, ou demandez à
l’agent, pour voir le conflit.
Un dépôt qui n’a rien à afficher indique
Working tree clean — no changes.
Actualiser #
La liste n’est pas en direct. Elle est lue quand vous ouvrez la fenêtre, quand vous appuyez sur ↻ (actualiser) et après un pull. Pendant qu’un agent travaille, appuyez sur ↻ pour voir ses dernières modifications. Fermer et rouvrir la fenêtre a le même effet.
La visionneuse de diff #
Cliquez sur une ligne pour ouvrir le diff de ce fichier dans une seconde
fenêtre, par-dessus la liste. Le diff compare le fichier au dernier commit, si
bien que les modifications indexées et non indexées s’affichent ensemble. Le
titre est le chemin du fichier ; en dessous figurent l’état et les compteurs,
par exemple Modified · +12 −3.
| Bouton | Affiche |
|---|---|
| Changes (Modifications) | Les lignes ajoutées et supprimées, avec trois lignes inchangées autour de chacune. Les plages inchangées plus longues se replient en ⋯ 40 unchanged lines. C’est la vue par défaut. |
| Full file (Fichier complet) | Toutes les lignes du fichier, avec les modifications signalées. |
Les deux vues viennent d’un même diff, donc le passage de l’une à l’autre est instantané. Le choix est conservé pour les fichiers que vous ouvrez ensuite, jusqu’à ce que vous rechargiez la page. Les lignes portent les anciens et les nouveaux numéros de ligne ; les lignes ajoutées sont vertes et les lignes supprimées rouges.
| Fichier | Ce que vous voyez |
|---|---|
| Nouveau (non suivi) | Toutes les lignes comme ajoutées. |
| Supprimé | Toutes les lignes comme supprimées. |
| Renommé | Le nouveau chemin comparé au dernier commit : toutes les lignes comme ajoutées, même quand le contenu n’a pas changé. |
| Binaire | Binary file — no text diff available., avec l’état seul et sans compteurs. |
| Aucune modification de texte, comme un changement de mode | No textual changes detected for this file. |
| Très volumineux | Le même diff, en entier. OAR ne fixe aucune limite de taille, mais la lecture du diff dispose de 15 secondes et d’une limite de sortie de 32 Mo. Un fichier qui les dépasse affiche un message d’erreur à la place du diff. |
Les longues lignes ne sont pas renvoyées à la ligne. Faites défiler horizontalement pour les lire.
Si git ne peut pas lire l’état ou un diff, le message s’affiche en rouge au-dessus de la liste, ou à la place du diff.
Fermez le diff avec ×, Esc ou un clic à l’extérieur. La liste reste ouverte derrière. ×, Esc ou un clic à l’extérieur ferme ensuite la liste à son tour.
Ce qu’elle ne fait pas #
Il n’y a ici ni indexation, ni commit, ni abandon de modifications, ni push, et aucun moyen de modifier un fichier. Pour commiter, annuler une modification ou pousser, demandez-le à l’agent, dans la conversation. Un commit que l’agent fait sur Claude porte la ligne d’attribution que vous avez choisie ; voir Attribution des commits. Ajouté en 0.9.17 Sur DeepSeek, il porte la ligne choisie sous Commit attribution (Attribution des commits) dans l’onglet DeepSeek, ou le réglage propre au dossier.
Par fournisseur #
La fenêtre est la même pour tous les fournisseurs qui tournent sur l’hôte du relais : GitHub Copilot, OpenAI, Claude, Cursor, Grok et DeepSeek. Elle lit le dossier et git, pas l’agent.
| Fournisseur | Modifications Git |
|---|---|
| Claude Cloud | Le chat travaille sur un clone chez Anthropic, que cette fenêtre ne peut pas voir. L’entrée figure dans le menu et lit le dossier de travail que vous avez choisi dans New Chat sur l’hôte du relais (celui qui a fourni le dépôt et la branche), et non les modifications du bac à sable. Les résultats de l’agent reviennent sous forme de branches qu’il a poussées : la ligne cloud au-dessus de la zone de saisie a un lien ⇡ branch (⇡ branche) par branche poussée. Voir Claude Cloud. |