Para obtener una rama de un repositorio Git remoto y empezar a trabajar en ella localmente, abra Terminal en su repositorio, obtenga los cambios del remoto correcto y luego cree una rama local que rastree la rama remota. Por ejemplo, git fetch origin seguido de git switch --track origin/feature/login crea y cambia a una rama local feature/login vinculada a origin/feature/login.
Abra Terminal en el repositorio
Abra Terminal y diríjase a la carpeta que contiene su repositorio Git. En macOS Terminal, el shell predeterminado es zsh, aunque su configuración puede utilizar un shell diferente. Los comandos de Git que se muestran a continuación funcionan en ambos; los nombres de rama que contengan metacaracteres del shell deben entrecomillarse para que el shell no los interprete. Guía de Terminal de Apple
Si ya tiene el repositorio abierto en un editor de código, use su terminal integrado si está disponible. De lo contrario, en Terminal, escriba cd , arrastre la carpeta del repositorio desde Finder hasta la ventana de Terminal para insertar su ruta y presione Retorno. Compruebe que se encuentra en el repositorio correcto y revise cualquier cambio local antes de cambiar de rama:
git status --short
git remote -v
git remote -v enumera los nombres y las URL de los remotos configurados. Los comandos a continuación usan origin, un nombre de remoto común; reemplácelo con el nombre real que se muestre en su Mac. Si no aparece ningún remoto, este repositorio no tiene actualmente un remoto configurado del cual obtener datos.
Obtenga la rama remota
Ejecute:
git fetch origin
La operación de obtención (fetching) descarga confirmaciones (commits) y referencias desde el remoto y actualiza las referencias de seguimiento remoto locales de acuerdo con la configuración de obtención del repositorio. No cambia por sí misma su directorio de trabajo a la rama. En la configuración habitual, las ramas obtenidas de origin aparecen con nombres como origin/feature/login. La documentación de Git define fetch como la actualización de ramas de seguimiento remoto, cuyo mapeo exacto está controlado por el refspec de obtención del remoto. Documentación de fetch de Git
Puede confirmar que la rama es visible localmente con:
git branch --remotes
Busque origin/feature/login en la salida. Si no aparece, compruebe que el nombre de la rama y el remoto sean correctos, que pueda acceder al remoto y que la configuración de obtención del remoto incluya esa rama. Es posible que una obtención exitosa aún no muestre todas las ramas del servidor si el repositorio utiliza un refspec restringido.
Cree y cambie a la rama de seguimiento local
Cuando la rama de seguimiento remoto esté presente y desee que la rama local use el mismo nombre, ejecute:
git switch --track origin/feature/login
Git crea una rama local feature/login, establece su rama ascendente (upstream) en origin/feature/login y cambia su árbol de trabajo a ella. La relación de seguimiento permite que comandos como git status informen cómo se compara la rama local con su upstream, y le proporciona a Git un upstream predeterminado para operaciones como git pull. La opción --track establece ese upstream; en esta forma, Git deriva el nombre local a partir de la rama de seguimiento remoto. Documentación de switch de Git
Si desea un nombre de rama local diferente, especifíquelo explícitamente:
git switch --track --create login-work origin/feature/login
Esto crea la rama local login-work que rastrea origin/feature/login. En las versiones de Git que admiten el comando más reciente switch, --create es la forma larga de -c. Compruebe su versión instalada con git --version si Git informa que no reconoce switch; git switch se introdujo en Git 2.23. En ese caso, use el equivalente anterior:
git checkout --track -b login-work origin/feature/login
Verifique la rama y gestione errores comunes
Después de cambiar de rama, confirme la rama activa y el estado de seguimiento:
git status -sb
git branch -vv
La salida del estado debería identificar la rama local y su upstream. En la lista de ramas, login-work debería mostrar origin/feature/login como su rama de seguimiento.
Si Git indica que la rama es ambigua, use la forma totalmente especificada remote/branch que se mostró anteriormente en lugar de confiar en la detección automática. El atajo de Git git switch feature/login puede crear automáticamente una rama de seguimiento cuando exactamente un remoto tiene una rama coincidente, pero puede surgir ambigüedad cuando varios remotos tienen ese nombre. Documentación de switch de Git
Si se rechaza el cambio de rama porque se sobrescribirían cambios locales, deténgase y revise git status antes de continuar. Confirme (commit) o guarde de forma segura en el stash el trabajo que desee conservar; no fuerce el cambio ni descarte los cambios a menos que comprenda lo que se perderá. Si el nombre de la rama local ya existe, elija esa rama deliberadamente o seleccione un nombre local diferente con --create; no asuma que una rama existente ya rastrea el remoto que pretendía.
El flujo de trabajo se completa cuando la rama local deseada está activa (checked out) y su upstream apunta a la rama remota correspondiente. La obtención actualiza lo que su repositorio local sabe sobre el remoto; crear la rama de seguimiento le brinda un espacio local para trabajar mientras conserva esa conexión.
Fuentes
Cambiar el shell por omisión en Terminal en la Mac — Soporte técnico de Apple