Para comprobar si una rama local de Git se puede eliminar de forma segura en macOS, inspecciona tu árbol de trabajo, compara las confirmaciones (commits) de la rama con la rama que deseas conservar y comprueba si está en uso en otro árbol de trabajo (worktree). Abre Terminal, ve al repositorio y utiliza la comprobación de ramas fusionadas de Git como indicio, no como garantía de que la rama carece de valor. Si tienes dudas, conserva la rama hasta confirmar que su trabajo esté a salvo.

1. Abre el repositorio y comprueba si hay cambios sin guardar

Abre Terminal desde Aplicaciones > Utilidades, o usa Spotlight para encontrarlo. Apple documenta zsh como el shell predeterminado de Terminal, y los comandos siguientes funcionan en la configuración estándar de macOS. En Terminal, desplázate hasta el directorio del repositorio; escribe la ruta entre comillas si contiene espacios:

cd "/path/to/your/repository"
git status --short --branch

La salida del estado muestra la rama activa y si los archivos tienen cambios. Haz commit o guarda de otro modo los cambios de archivo deseados antes de cambiar de rama. Esta comprobación es independiente del historial de la rama: un árbol de trabajo limpio no significa que los commits de la rama se hayan fusionado. Del mismo modo, los cambios sin confirmar no están protegidos solo por eliminar una rama con la opción normal de eliminación segura de Git.

2. Comprueba si la rama está fusionada en el destino adecuado

En primer lugar, identifica la rama que deseas conservar, habitualmente main o develop. Si te encuentras actualmente en la rama candidata, cambia a la rama de destino antes de borrar nada. Sustituye feature/example y main a continuación por los nombres reales de tus ramas:

git switch main
git branch --merged main
git branch --no-merged main

La primera lista contiene ramas locales cuyos extremos son alcanzables desde main; la segunda enumera ramas cuyos extremos no lo son. Git describe git branch --merged como el listado de ramas fusionadas en el commit especificado (o HEAD si no se indica ninguno). Se trata de una prueba del historial de commits, por lo que solo es útil cuando main es la rama que debería contener el trabajo. Una rama fusionada en otra rama de integración o de versión (release) todavía puede aparecer como no fusionada respecto a main. Documentación de branch de Git

Si la candidata aparece en --merged main, es una señal clara de que sus commits ya son alcanzables desde main. Confirma que la funcionalidad o corrección está presente donde se espera, especialmente si tu equipo utiliza pull requests, ramas de versión o un destino de fusión diferente. Si aparece bajo --no-merged, no la elimines hasta haber examinado qué commits son exclusivos de ella.

3. Inspecciona los commits y el seguimiento del repositorio remoto

Para comparar una rama candidata con el destino, utiliza:

git log --oneline main..feature/example

Esto muestra los commits alcanzables desde feature/example que no son alcanzables desde main. Si muestra commits, examínalos y decide si deben fusionarse, incorporarse mediante cherry-pick o conservarse. Un resultado vacío significa que la candidata no tiene commits adicionales respecto a main en esta comparación; esto no garantiza que el nombre de la rama o su propósito ya no sean necesarios.

Una rama también puede hacer el seguimiento de una rama remota. Comprueba su información de seguimiento con:

git branch -vv

Una rama upstream es una referencia configurada que Git utiliza para operaciones como pull y push. La ausencia o desaparición de una rama upstream no prueba que la rama local sea segura de eliminar: sus commits aún podrían ser exclusivos. Además, una referencia de seguimiento remoto puede estar desactualizada hasta que realices un fetch. Si deseas actualizar los datos de seguimiento remoto, git fetch --prune origin descarga desde origin y elimina las referencias de seguimiento remoto obsoletas según el refspec de ese remoto; no borra tu rama local. Documentación de fetch de Git

4. Comprueba los árboles de trabajo (worktrees) y luego elimina de forma segura

Una rama puede estar extraída (checked out) en otro árbol de trabajo (worktree) vinculado. Git se niega a eliminar una rama que esté activa en un checkout, por lo que si se deniega la eliminación, ejecuta git worktree list y revisa los directorios listados antes de continuar. Comprueba también que la candidata no sea tu rama actual; cambia primero al destino previsto. Documentación de branch de Git

Cuando hayas confirmado que el trabajo está a salvo y que la rama ya no es necesaria, elimínala usando la opción protegida de Git:

git branch -d feature/example

Git permite -d únicamente cuando la rama está totalmente fusionada en su upstream configurado, o en HEAD si no hay ningún upstream configurado. Si Git lo rechaza, tómalo como una indicación para investigar. -D fuerza la eliminación sin importar el estado de fusión; elude esta protección y no debe ser una solución habitual. Documentación de branch de Git

Una decisión prudente es sencilla: elimina con -d solo después de que el trabajo de la rama candidata esté presente en el destino previsto, se hayan revisado los commits exclusivos y ningún árbol de trabajo siga usando la rama. Si alguna de estas comprobaciones genera dudas, conserva la rama y aclara primero su destino.

Fuentes