Todas las páginas
En esta página

Cambios de Git

Git changes (Cambios de Git) muestra lo que es diferente en el repositorio Git de la carpeta de trabajo de la conversación: la rama, cada archivo cambiado y un diff de cada uno. Úsalo para revisar el trabajo de un agente antes de pedirle que haga commit. Es un visor. Lo único que cambia algo es el botón ⬇ Pull.

Abrirlo #

Abre el menú ⋯ de la conversación y elige 🌿 Git changes. Se abre una ventana sobre la conversación. Lee la carpeta del host del relay, así que ves lo mismo desde cualquier navegador.

La entrada está en el menú de cada conversación abierta. Está oculta cuando no hay ninguna conversación abierta y en la vista compartida de solo lectura.

Qué repositorio #

La ventana ejecuta git en la carpeta de trabajo de la conversación, la que elegiste en el cuadro de diálogo New chat o fijaste con 🗂️ Change CWD (Cambiar la carpeta de trabajo). Git encuentra el repositorio a partir de ahí, igual que en una terminal: una carpeta dentro de un repositorio muestra ese repositorio.

Si git no encuentra ningún repositorio, la cabecera dice Not a git repository y la lista dice The current workspace root is not a git repository. El botón ⬇ Pull está desactivado. Una carpeta que solo contiene varios repositorios uno al lado del otro no es un repositorio en sí, así que también recibe este mensaje. Inicia una conversación dentro del repositorio que quieres revisar.

Carpeta de trabajo por debajo de la raíz del repositorio

Cuando la carpeta de trabajo es una subcarpeta de un repositorio, la lista sigue mostrando los cambios de todo el repositorio, no solo los de esa subcarpeta. Abrir un archivo desde ella no funciona: cada diff dice No textual changes detected for this file. Inicia la conversación en la carpeta raíz del repositorio para obtener diffs que funcionen.

Un repositorio que aún no tiene commits muestra el nombre de su rama, y se listan sus archivos en el stage. El diff de un archivo en el stage falla ahí con el mensaje de git fatal: bad revision 'HEAD'. Los diffs de archivos sin seguimiento funcionan.

La cabecera muestra la rama y, a su lado, a qué distancia está de su upstream:

Cabecera Significado
main La rama, al nivel de su upstream o sin upstream.
main ↑2 Dos commits por delante del upstream: aún sin push.
main ↓3 Tres commits por detrás del upstream.
main ↑2 ↓3 Ambas cosas.
detached HEAD Hay un commit en checkout, no una rama.

Debajo de la rama, una segunda línea muestra el upstream y el número de archivos cambiados, como origin/main · 4 changed files (1 changed file para uno). Una rama sin upstream no muestra flechas ni nombre de upstream, solo el recuento. Los recuentos son los últimos que conocía git: OAR no hace fetch, así que ↓ solo cambia después de un fetch o un pull.

Pull #

⬇ Pull ejecuta un git pull simple en la carpeta, sin opciones. Su tooltip dice «Pull from upstream», pero OAR no nombra ningún remoto ni rama. Que haga merge, rebase o solo fast-forward depende de lo que diga tu configuración de git (pull.rebase, pull.ff). Siempre se ofrece cuando la carpeta es un repositorio, también cuando no hay nada que traer, y está desactivado mientras la ventana carga o se ejecuta un pull (el botón dice Pulling…). Un pull puede tardar hasta 120 segundos.

Cuando termina, una línea debajo de la cabecera dice Pull: y la última línea de la salida de git (por ejemplo Pull: Already up to date.), o Pull complete. cuando git no imprimió nada. Si git se niega, la línea es roja y dice Pull failed: seguido del propio mensaje de git. Es lo que ves con un conflicto, con cambios locales que un pull sobrescribiría o con una rama sin upstream. OAR no hace stash, reset ni resuelve nada. Pide al agente que lo arregle. La lista se recarga después de cada pull.

La lista #

Cada archivo cambiado es una fila: los archivos en el stage, fuera del stage y sin seguimiento juntos, ordenados por ruta. Una fila muestra:

  • una insignia con una letra para el estado, y el nombre del archivo con su carpeta debajo;
  • para un archivo renombrado, la ruta antigua después de una ←;
  • los archivos eliminados con el nombre tachado.

Una carpeta nueva que git aún no sigue es una sola fila para toda la carpeta, no una por cada archivo que contiene. Su nombre está vacío y la ruta de la carpeta se muestra debajo. Al abrirla se muestra No textual changes detected for this file.

Insignia Significado
M Modificado
A Añadido
D Eliminado
R Renombrado
C Copiado
T Tipo cambiado
U Sin seguimiento: un archivo nuevo que git aún no sigue

Un archivo editado después de añadirlo al stage aparece una vez, con el estado de la copia de trabajo. La lista no distingue los cambios en el stage de los que están fuera. Pasa el puntero sobre una fila para ver el estado en palabras y la ruta completa.

Archivos con conflictos

Un archivo con un conflicto de merge no tiene insignia propia. Un archivo que cambiaron ambos lados (UU en git) muestra U y la palabra Untracked (Sin seguimiento), aunque sí tiene seguimiento. Un archivo que añadieron ambos lados muestra A, uno eliminado en ambos lados muestra D, y uno eliminado en un solo lado muestra D (tachado) o U, según el lado. Su diff se sigue abriendo y lo compara con el último commit. Usa git status en una terminal, o pregunta al agente, para ver el conflicto.

Un repositorio sin nada que mostrar dice Working tree clean — no changes.

Actualizar #

La lista no es en vivo. Se lee cuando abres la ventana, cuando pulsas ↻ (actualizar) y después de un pull. Mientras un agente trabaja, pulsa ↻ para ver sus últimas ediciones. Cerrar y volver a abrir la ventana hace lo mismo.

El visor de diffs #

Haz clic en una fila para abrir el diff de ese archivo en una segunda ventana encima de la lista. El diff compara el archivo con el último commit, así que las ediciones en el stage y fuera de él se muestran juntas. El título es la ruta del archivo; debajo, el estado y los recuentos, por ejemplo Modified · +12 −3.

Botón Muestra
Changes (Cambios) Las líneas añadidas y eliminadas, con tres líneas sin cambios alrededor de cada una. Los tramos sin cambios más largos se pliegan en ⋯ 40 unchanged lines. Es la opción predeterminada.
Full file (Archivo completo) Todas las líneas del archivo, con los cambios marcados.

Ambas vistas salen de un mismo diff, así que el cambio es instantáneo. La elección se mantiene para los siguientes archivos que abras, hasta que recargues la página. Las líneas llevan el número de línea antiguo y el nuevo; las líneas añadidas son verdes y las eliminadas, rojas.

Archivo Lo que ves
Nuevo (sin seguimiento) Todas las líneas como añadidas.
Eliminado Todas las líneas como eliminadas.
Renombrado La ruta nueva comparada con el último commit: todas las líneas como añadidas, aunque el contenido no haya cambiado.
Binario Binary file — no text diff available., solo con el estado y sin recuentos.
Sin cambios de texto, como un cambio de permisos No textual changes detected for this file.
Muy grande El mismo diff, completo. OAR no fija ningún límite de tamaño, pero leer el diff tiene un límite de 15 segundos y 32 MB de salida. Un archivo que los supera muestra un mensaje de error en lugar del diff.

Las líneas largas no se ajustan. Desplázate en horizontal para leerlas.

Si git no puede leer el estado o un diff, el mensaje se muestra en rojo encima de la lista, o en lugar del diff.

Cierra el diff con ×, Esc o un clic fuera de él. La lista sigue abierta detrás. ×, Esc o un clic fuera cierran a su vez la lista.

Lo que no hace #

Aquí no se puede añadir al stage, hacer commit, descartar ni hacer push, ni tampoco editar un archivo. Para hacer commit, deshacer un cambio o hacer push, pídeselo al agente, en la conversación. Un commit que hace el agente en Claude lleva la línea de atribución que elegiste; consulta Atribución de commits. Nuevo en 0.9.17 En DeepSeek lleva la línea elegida en Commit attribution (Atribución de commits) en la pestaña DeepSeek, o el ajuste propio de la carpeta.

Por proveedor #

La ventana es la misma para todos los proveedores que se ejecutan en el host del relay: GitHub Copilot, OpenAI, Claude, Cursor, Grok y DeepSeek. Lee la carpeta y git, no el agente.

Proveedor Cambios de Git
Claude Cloud El chat trabaja en un clon en Anthropic, que esta ventana no puede ver. La entrada está en el menú y lee la carpeta de trabajo que elegiste en New Chat (Nuevo chat) en el host del relay (la que rellenó el repositorio y la rama), no los cambios del sandbox. Los resultados del agente vuelven como ramas a las que hizo push: la línea de la nube encima del área de redacción tiene un enlace ⇡ branch (rama) por cada rama enviada. Consulta Claude Cloud.