Para buscar uma branch de um repositório Git remoto e começar a trabalhar nela localmente, abra o Terminal em seu repositório, faça o fetch do repositório remoto correto e, em seguida, crie uma branch local que rastreie a branch remota. Por exemplo, git fetch origin seguido de git switch --track origin/feature/login cria e alterna para uma branch local feature/login vinculada a origin/feature/login.

Abrir o Terminal no repositório

Abra o Terminal e navegue até a pasta que contém o seu repositório Git. No Terminal do macOS, o shell padrão é o zsh, embora sua configuração possa usar um shell diferente. Os comandos Git abaixo funcionam em ambos; nomes de branches que contenham metacaracteres de shell devem ser colocados entre aspas para que o shell não os interprete. Guia do Terminal da Apple

Se você já estiver com o repositório aberto em um editor de código, use o terminal integrado dele, se disponível. Caso contrário, no Terminal, digite cd , arraste a pasta do repositório do Finder para a janela do Terminal para inserir o caminho e pressione Return. Verifique se você está no repositório correto e revise quaisquer alterações locais antes de trocar de branch:

git status --short
git remote -v

git remote -v lista os nomes e URLs dos remotos configurados. Os comandos abaixo usam origin, um nome comum de repositório remoto; substitua-o pelo nome real exibido no seu Mac. Se nenhum remoto for listado, este repositório não tem atualmente um remoto configurado de onde buscar.

Fazer o fetch da branch remota

Execute:

git fetch origin

Fazer o fetch baixa commits e referências do repositório remoto e atualiza as referências locais de rastreamento remoto de acordo com a configuração de fetch do repositório. Isso não altera, por si só, o seu diretório de trabalho para a branch. Na configuração usual, as branches obtidas do origin aparecem com nomes como origin/feature/login. A documentação do Git descreve o fetch como a ação de atualizar branches de rastreamento remoto, com o mapeamento exato controlado pelo refspec de fetch do remoto. Documentação do Git fetch

Você pode confirmar se a branch está visível localmente com:

git branch --remotes

Procure por origin/feature/login na saída. Se não estiver presente, verifique se o nome da branch e o remoto estão corretos, se você tem acesso ao remoto e se a configuração de fetch do remoto inclui essa branch. Um fetch bem-sucedido ainda pode não exibir todas as branches do servidor se o repositório usar um refspec restrito.

Criar e alternar para a branch de rastreamento local

Quando a branch de rastreamento remoto estiver presente e você quiser que a branch local use o mesmo nome, execute:

git switch --track origin/feature/login

O Git cria uma branch local feature/login, define seu upstream para origin/feature/login e alterna sua árvore de trabalho para ela. A relação de rastreamento permite que comandos como git status informem a situação da branch local em relação ao seu upstream, e fornece ao Git um upstream padrão para operações como git pull. A opção --track define esse upstream; o Git deduz o nome local a partir da branch de rastreamento remoto dessa forma. Documentação do Git switch

Se você quiser um nome de branch local diferente, especifique-o explicitamente:

git switch --track --create login-work origin/feature/login

Isso cria a branch local login-work rastreando origin/feature/login. Em versões do Git que suportam o comando mais recente switch, --create é a forma longa de -c. Verifique a versão instalada com git --version se o Git informar que switch é desconhecido; o git switch foi introduzido no Git 2.23. Nesse caso, use o equivalente mais antigo:

git checkout --track -b login-work origin/feature/login

Verificar a branch e lidar com erros comuns

Depois de alternar, confirme a branch ativa e o status de rastreamento:

git status -sb
git branch -vv

A saída de status deve identificar a branch local e seu upstream. Na listagem de branches, login-work deve mostrar origin/feature/login como sua branch de rastreamento.

Se o Git informar que a branch é ambígua, use o formato totalmente especificado remote/branch mostrado acima em vez de depender da adivinhação automática. O atalho do Git git switch feature/login pode criar automaticamente uma branch de rastreamento quando exatamente um remoto tiver uma branch correspondente, mas ambiguidades podem surgir quando múltiplos remotos tiverem esse nome. Documentação do Git switch

Se a troca for recusada porque alterações locais seriam sobrescritas, pare e revise o git status antes de prosseguir. Faça commit ou use o stash com segurança para o trabalho que você deseja manter; não force a troca nem descarte alterações a menos que entenda o que será perdido. Se o nome da branch local já existir, escolha essa branch deliberadamente ou selecione um nome local diferente com --create; não presuma que uma branch existente já rastreia o remoto pretendido.

O fluxo de trabalho está concluído quando a branch local pretendida estiver em checkout e seu upstream apontar para a branch remota pretendida. Fazer o fetch atualiza o que seu repositório local sabe sobre o remoto; criar a branch de rastreamento fornece um local para trabalhar enquanto preserva essa conexão.

Fontes