Eu tenho um projecto com vários ramos. I'tenho estado empurrando-os para GitHub, e agora que alguém está trabalhando no projeto eu preciso tirar suas filiais do GitHub. Funciona bem em master. Mas digamos que alguém criou um branch xyz
. Como eu posso puxar o branch xyz
do GitHub e fundi-lo no branch xyz
no meu localhost
?
Na verdade tenho aqui a minha resposta: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git
Mas eu recebo um erro "! [rejeitado]" e algo sobre " non fast forward".
Alguma sugestão?
Basta rastrear seus ramos remotos explicitamente e um simples git pull
fará exatamente o que você quer:
git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name
Esta última é uma operação local.
Ou ainda mais adequado com a documentação do GitHub sobre bifurcação:
git branch -f new_local_branch_name upstream/remote_branch_name
Você poderia puxar um ramo para um ramo com os seguintes comandos.
git pull {repo} {remotebranchname}:{localbranchname}
git pull origin xyz:xyz
Quando você está na filial principal, você também pode primeiro fazer o checkout de uma filial como:
git checkout -b xyz
Isto cria um novo ramo, "xyz", a partir do mestre e verifica-o directamente.
Então você faz:
git pull origin xyz
Isto puxa a nova filial para a sua filial local xyz
.
Não tenho a certeza se entendi bem o problema, mas puxar um ramo existente é feito assim (pelo menos funciona para mim :)
git pull origin BRANCH
Isto assumindo que a filial local é criada a partir da origem/BRANCO.