Si las ramas eliminadas siguen apareciendo en Git en tu Mac, purga las referencias de seguimiento remoto de tu repositorio local. Abre Terminal, ve a la carpeta del repositorio, comprueba qué remoto deseas actualizar y luego ejecuta git fetch --prune origin. Esto actualiza las referencias obtenidas y elimina las obsoletas asociadas con origin; no elimina ramas del servidor remoto ni borra tus ramas locales. Documentación de git fetch de Git
¿Qué se actualiza al purgar?
Una rama de seguimiento remoto es tu registro local de una rama en un repositorio remoto. Por ejemplo, origin/feature-x representa el último estado obtenido de la rama remota. Es independiente de una rama local llamada feature-x. Si la rama remota se elimina, tu referencia local puede permanecer hasta que Git la purgue. La asignación de obtención predeterminada de Git suele almacenar las ramas remotas en refs/remotes/origin/, aunque un repositorio puede usar una asignación diferente. Git documenta cómo los refspecs de obtención configurados asignan las ramas remotas.
La purga compara las referencias actuales del remoto con las referencias locales cubiertas por la configuración de obtención de ese remoto, y luego elimina las referencias que ya no existen de forma remota. Limpia tu vista local; no es un comando para eliminar ramas remotas. Esto puede hacer que comandos como git branch --all sean más fáciles de leer cuando un repositorio ha acumulado referencias de ramas antiguas. Guía de purga de Git
Actualizar referencias desde Terminal
Apple documenta zsh como el shell predeterminado en Terminal en Mac, aunque un Mac o un entorno administrado pueden configurarse de manera diferente. Los comandos de Git a continuación funcionan en la configuración habitual de Terminal en macOS. Guía del usuario de Terminal de Apple
- Abre Terminal y ve a la carpeta del repositorio. Si conoces su ruta, escríbela entre comillas cuando contenga espacios, por ejemplo:
cd "/Users/sam/Projects/Client App"
Reemplaza la ruta de ejemplo con la ruta real de tu repositorio. Si no estás seguro de dónde te encuentras, pwd muestra el directorio actual. Ejecuta los comandos de Git desde el interior del repositorio.
- Confirma el repositorio y el nombre del remoto:
git status --short --branch
git remote -v
git remote -v enumera los nombres y las URL de los remotos configurados. origin es habitual, pero utiliza el nombre que se muestre para el servidor cuyas referencias deseas actualizar. Si el repositorio tiene varios remotos, purga únicamente el previsto.
- Obtén una vista previa de las referencias obsoletas antes de eliminarlas:
git remote prune --dry-run origin
Git informa qué referencias purgaría sin eliminarlas. La opción de simulación (dry-run) pertenece a git remote prune; no obtiene los extremos de ramas nuevas. Documentación de git remote de Git
- Si la vista previa coincide con lo que esperas, actualiza y purga en un solo paso:
git fetch --prune origin
Esto realiza la obtención de acuerdo con el refspec configurado del remoto y elimina las referencias obsoletas cubiertas por esa asignación. La salida de fetch de Git marca una referencia purgada con -. Para purgar sin obtener actualizaciones, utiliza git remote prune origin en su lugar. Git documenta ambos métodos puntuales.
- Comprueba el resultado:
git branch --remotes
git branch --all
El listado exclusivo de remotos muestra las ramas de seguimiento remoto; el listado de todas las ramas incluye tanto las ramas de seguimiento remoto como las locales. Es posible que una rama ausente en el listado remoto aún exista como rama local, y la purga no la elimina.
Si la referencia obsoleta permanece
Primero comprueba que hayas utilizado el nombre de remoto correcto. Luego considera la configuración de obtención del repositorio: los remotos se pueden configurar para rastrear solo ramas seleccionadas, y los refspecs personalizados cambian las referencias sobre las que actúan fetch y prune. Inspecciona la asignación con git config --get-all remote.origin.fetch, reemplazando origin si es necesario. Si el remoto está configurado para rastrear solo un subconjunto, es posible que las ramas fuera de ese subconjunto no se comporten como se espera bajo una obtención predeterminada. Git explica los refspecs de obtención y su efecto en la purga.
Si el comando informa un error de red o de autenticación, Git no pudo completar la obtención remota; resuelve el problema de conexión o acceso y vuelve a intentarlo. Evita agregar --prune-tags a menos que desees específicamente que la purga se aplique también a las etiquetas: Git advierte que los refspecs de etiquetas explícitos pueden hacer que se eliminen las etiquetas locales que no estén presentes en ese remoto. La documentación de purga de Git explica esta advertencia sobre las etiquetas.
Utiliza git fetch --prune origin cuando desees obtener la información de seguimiento remoto actualizada y la limpieza al mismo tiempo. Utiliza primero git remote prune --dry-run origin cuando quieras revisar los candidatos, o git remote prune origin cuando quieras limpiar sin obtener actualizaciones de ramas.
Fuentes
Change the default shell in Terminal on Mac — Soporte técnico de Apple