Puxar ramificação remota para repositório local com nome diferente?

112

Tudo bem, eu pesquisei um pouco sobre isso, mas não consegui encontrar uma resposta exata, então tenho que perguntar.

Eu tenho 2 controles remotos: origem e repo2.

Eu gostaria de fazer algo como

git pull repo2 master

Mas isso puxaria o branch master do repo2 para o meu master. Posso especificar um branch diferente para puxar, para meu branch local?

Cosmin Atanasiu
fonte

Respostas:

163
git checkout -b myBranchName repo2/master
KingCrunch
fonte
20
Nota - você deve ter executado git fetch remote2antes, se ainda não o fez. Caso contrário, você verá> fatal: Não é possível atualizar os caminhos e alternar para o branch 'myBranchName' ao mesmo tempo.
dman
Observação - se você precisar recuar, use git push repo2 myBranchName:mastercomo um git push
método
2
E se a filial já existir? Quero atualizar o código com o código do repo.
Jared
@Jared Tecnicamente, uma pergunta diferente, mas também facilmente possível (e na verdade esse é um dos casos de uso mais comuns). Depende um pouco do que você já fez. Na maioria dos casos, é apenas git checkout my_branch && git pull --rebase( --rebasedepende do seu fluxo de trabalho). Se o ramo ainda não estiver rastreando o remoto, você precisará executar git branch --set-upstream my_branch upstream/my_branchuma vez.
KingCrunch
4

O git pullcomando é uma função de conveniência que faz git fetche git merge. Se você deseja apenas recuperar branches de um novo controle remoto sem tentar mesclá-lo em qualquer branch da cópia de trabalho, você pode apenas usar git fetch. Você pode então consultar para git branch -avver todas as ramificações locais e remotas e operar em qualquer um dos remotos que desejar.

Ben Jackson
fonte