Todos los artículos

Cómo ver el estado de Git en tu gestor de archivos en Mac

· 8 min de lectura

Estás en la carpeta de un proyecto y quieres saber cómo está: en qué rama estás, qué archivos han cambiado desde el último commit, qué archivos nuevos Git aún no sigue. El Finder no te lo dirá, así que el rodeo habitual pasa por un terminal, un cd y un git status, o por tu editor de código.

La respuesta corta: el Finder no muestra nada de Git, salvo que instales una app que ponga distintivos en los archivos mediante una extensión del Finder. En Terminal, git status -sb en la carpeta del proyecto da la rama y una línea por cambio. En Folia Files, abre el proyecto en un panel: la rama aparece en la cabecera del panel y, en las vistas Lista, Lista detallada y Árbol, cada archivo y carpeta con cambios recibe una letra: M modificado, A añadido, R renombrado, U sin seguimiento, ! en conflicto.

Por qué el Finder no muestra nada

Un repositorio Git es una carpeta normal con una carpeta oculta .git dentro. ⇧⌘. hace que el Finder la muestre, pero el Finder no la lee: ninguna columna, distintivo o etiqueta indica que un archivo ha cambiado desde el último commit, y nada muestra la rama.

macOS sí permite que otras apps dibujen distintivos en los archivos de las ventanas del Finder, mediante una extensión Finder Sync, y algunas herramientas de Git funcionan así. Una extensión de este tipo solo cubre las carpetas que registra, y no muestra nada hasta que la permites en Ajustes del Sistema.

En Terminal: git status

El formato corto

En un terminal abierto en la carpeta del proyecto, git status describe cada cambio con frases completas. Su forma corta cabe en una pantalla:

git status -sb

-s da una línea por cambio y -b añade la rama arriba. Para el proyecto Atlas de las capturas de más abajo, responde:

## 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 primera línea nombra la rama, la rama remota que sigue y cuántos commits no has enviado (ahead) o no has traído (behind). Cada línea siguiente empieza con dos columnas: la primera para lo que está preparado, ya añadido con git add, y la segunda para lo que ha cambiado después. M significa modificado, A añadido, R renombrado, D eliminado, ?? sin seguimiento, y UU un conflicto que dejó una fusión.

Solo la rama

git branch --show-current muestra solo el nombre de la rama. Muchas configuraciones del shell, como los temas de Oh My Zsh o el prompt Starship, también ponen la rama en el prompt.

Tener un shell en la carpeta correcta es la mitad del trabajo: cómo abrir Terminal en la carpeta actual explica las formas del Finder y las de Folia Files.

En tu editor de código

Los editores de código muestran la misma información en sus propias ventanas. VS Code pone una letra tras cada archivo modificado en su explorador (Explorer) y lista los cambios en su vista Source Control (⌃⇧G); Xcode marca los archivos modificados con una M o una A en su navegador de proyecto (Project navigator). Eso exige abrir antes el proyecto en el editor, y cómo abrir una carpeta en VS Code, Cursor o Xcode muestra las formas más cortas.

El estado de Git en los paneles de Folia Files

Folia Files lee el estado por sí mismo y lo muestra donde navegas, junto a tus otras carpetas.

El proyecto Atlas en la vista Árbol de Folia Files: README.md y MapView.swift marcados con M, PhotoPin.swift con A, MapTests.swift con R, la carpeta sin seguimiento Notes con U, y la rama photo-pins con ↑2 y 5 cambios en la cabecera del panel

La rama, en la cabecera del panel

Cuando un panel muestra una carpeta de un repositorio Git, su carpeta raíz o cualquier otra más abajo, la cabecera muestra una pequeña cápsula entre la ruta y los botones de las vistas: el icono de rama y el nombre de la rama, luego ↑2 por dos commits por enviar, ↓ seguido de un número por los commits por recibir, y un punto naranja con el número de cambios, como en photo-pins ↑2 ● 5 (una carpeta sin seguimiento cuenta como uno). Se queda ahí en cada una de las nueve vistas del panel. En un panel estrecho es lo primero que cede su sitio: pasa al menú … de la cabecera, como Rama photo-pins.

Una letra en cada cambio

En las vistas Lista, Lista detallada y Árbol, y en las tarjetas de la vista Ramas, cada archivo con cambios recibe una letra de color al final de su fila:

  • M, naranja: modificado.
  • A, verde: añadido, un archivo nuevo preparado con git add.
  • R, turquesa: renombrado.
  • U, verde: sin seguimiento, nuevo para Git. Una carpeta sin seguimiento y todo lo que contiene reciben la U.
  • !, rojo: en conflicto tras una fusión.

El nombre del archivo toma un matiz del mismo color. Una carpeta recibe la letra del cambio más importante que contiene (primero un conflicto, luego un archivo añadido, un cambio de nombre, una modificación, un archivo sin seguimiento), así que en la vista Árbol una carpeta cerrada ya te dice que hay algo que mirar. Un archivo eliminado ya no está en su carpeta para llevar una letra: la carpeta muestra M y el menú de la rama lista el archivo. Los archivos que excluye .gitignore no reciben letra, como en git status.

Hay una letra por archivo donde git status tiene dos columnas: si un cambio ya está preparado, te lo dice git status. Las vistas Iconos, Columnas, Galería y Mosaico muestran la rama en la cabecera, sin letras.

El menú de la rama

Haz clic en la cápsula para abrir su menú: la rama y la rama remota que sigue, los commits por enviar y por recibir, y luego los archivos con cambios con su letra, por ruta desde la raíz del repositorio (30 como máximo, los eliminados atenuados). Elige uno y el panel va a su carpeta con el archivo seleccionado. Abajo están Ir a la raíz del repositorio, Copiar el nombre de la rama y Actualizar.

El menú de la rama del panel Atlas en Folia Files: Rama photo-pins → origin/photo-pins, 2 commits por enviar, los cinco cambios con su letra, y luego Ir a la raíz del repositorio, Copiar el nombre de la rama y Actualizar

Solo lectura, y sin estorbar

Folia Files solo ejecuta git status, en segundo plano. Nunca prepara, confirma ni trae nada, y ejecuta git status con GIT_OPTIONAL_LOCKS=0. La documentación de Git describe esa variable para las herramientas que trabajan en segundo plano: sin ella, git status puede tomar un momento el bloqueo del índice del repositorio para actualizarlo, y un git commit escrito justo entonces puede detenerse con «Another git process seems to be running in this repository».

El estado se vuelve a leer cuando cambian archivos en la carpeta del panel, un momento después de que guardes uno; Actualizar lo vuelve a leer cuando quieras. Las cifras de ↑ y ↓ comparan tu rama con la rama remota tal como estaba en tu último git fetch o git pull: Folia Files nunca contacta con el repositorio remoto.

Lo que necesita

  • Git en el Mac. Folia Files usa el git que ya está instalado: el de Homebrew, o el que viene con Xcode o con sus herramientas de línea de comandos (Command Line Tools). En un Mac sin ninguno de los dos, no muestra nada y nunca hace aparecer la oferta de macOS de instalar las herramientas de desarrollo. xcode-select --install en Terminal las instala.
  • El ajuste. Ajustes › Paneles, sección Contenido: Mostrar el estado de Git (rama y archivos modificados), activado desde el principio. Desactívalo para ocultar la rama y las letras en todas partes.
  • Una carpeta de este Mac. Las carpetas de un servidor o de un disco de red no tienen estado de Git: un servidor lento nunca frena un panel. Un repositorio en la raíz de tu carpeta de inicio, del tipo que guarda los archivos de configuración («dotfiles»), se ignora; si no, cada archivo recibiría una letra. Un repositorio cuyo git status tarda más de unos segundos no muestra nada.

Actuar desde la misma ventana

Lo que ves en el panel suele pedir un commit o un vistazo a un diff:

  • Abrir en el editor, en el menú contextual de la carpeta del proyecto o de un espacio vacío de su panel, muestra los editores de código instalados en tu Mac, VS Code, Cursor, Xcode y otros, y abre la carpeta en el que elijas.
  • En la edición del sitio web, ⌥⌘T o Visualización › Terminal abre un terminal debajo del panel, en su carpeta; con Seguir el panel marcado, sigue al panel de carpeta en carpeta. El comando ya preparado Estado de Git, en el submenú Comandos del menú contextual, escribe git status en ese terminal. La página del terminal integrado muestra el resto.

Folia Files con el proyecto Atlas en una lista detallada, sus letras junto a Notes, Sources, Tests y README.md, y bajo el panel el terminal integrado mostrando git status -sb con los mismos cambios

En la edición del Mac App Store

El sandbox de Apple no deja que la edición de la App Store ejecute git por sí misma. Allí, el estado de Git llega con Folia Files Companion, la app auxiliar gratuita de esa edición, que ejecuta git status por ella; sin Companion no aparecen ni la rama, ni las letras, ni el ajuste. El terminal integrado y los comandos solo están en la edición del sitio web; Abrir en el editor está en las dos.

Qué forma elegir

  • Un vistazo de vez en cuando: git status -sb en un terminal abierto en el proyecto.
  • Mientras escribes código: la vista Source Control de tu editor.
  • Mientras exploras, ordenas y mueves archivos: la rama en la cabecera del panel y las letras en la lista, con el editor y el terminal a un clic.