Eu clonei um repositório git e depois fiz check-out de uma tag:
# git checkout 2.4.33 -b my_branch
Isso está bom, mas quando tento executar git pull
no meu ramo, o git cospe esse erro:
Não há informações de rastreamento para a filial atual. Especifique com qual filial você deseja mesclar. Veja git-pull (1) para detalhes
git pull <remote> <branch>
Se você deseja definir informações de rastreamento para esse ramo, pode fazê-lo com:
git branch --set-upstream new origin/<branch>
Eu quero git pull
atualizar apenas o ramo mestre e deixar meu ramo atual em paz (é uma marca de qualquer maneira). É algo assim possível?
A razão pela qual eu preciso disso é que tenho um script automático que sempre git puxa o repositório e, é claro, falha por causa do erro acima ..
git
git-pull
git-checkout
alesko
fonte
fonte
Respostas:
Editar: para versões mais recentes do Git,
--set-upstream master
foi preterido, você deve usar--set-upstream-to
:Como solicitado, você pode simplesmente executar:
Depois disso, você pode simplesmente executar
git pull
para atualizar seu código.fonte
git checkout master
. Não pude fazergit pull
porque a referência à origem foi perdida. Agora funciona. Obrigado!Eu tive o mesmo problema e o corrigi com este comando:
No arquivo de ajuda, o -u basicamente define o padrão para pull:
fonte
Experimente estes comandos:
fonte
Volte ao ramo principal usando
e depois execute a
git pull
operaçãoDepois, você pode voltar ao seu
my_branch
novamente.fonte
@alesko : não é possível fazer apenas
git pull
após o checkoutmy_branch
para atualizarmaster
apenas o ramo.Porque
git pull
também irá mesclar para a ramificação atual -> no seu cenário para omy_branch
@ Simon : isso fará também o empurrão. por que é que?
e de acordo com os documentos:
fonte
Primeiro, verifique se você está no ramo certo.
Então (apenas uma vez):
Depois disso, isso funciona novamente:
fonte
Você pode ter várias ramificações. E sua ramificação atual não configurou seu upstream no controle remoto.
Passos para corrigir isso:
por exemplo
Depois de fazer isso, quando você faz
git pull
, ele puxa da ramificação especificada.fonte
Você pode especificar qual ramificação deseja extrair:
Ou você pode configurá-lo para que seu ramo mestre local rastreie o ramo mestre do github como um upstream:
Esse rastreamento de ramificação é configurado automaticamente quando você clona um repositório (apenas para a ramificação padrão), mas se você adicionar um controle remoto a um repositório existente, precisará configurar o rastreamento por conta própria. Felizmente, o conselho dado pelo git torna muito fácil lembrar como fazê-lo.
--set-upstream está obsoleto no git 1.9.x, aparentemente. No futuro, você gostaria de usar algo como
supondo que você já fez check-out do mestre. Caso contrário,
git branch -u origin/master master
funcionaráfonte
Tente isto
fonte
Você precisa configurar seu rastreamento (upstream) para a filial atual
Já está obsoleto, e não pode ser usado - sinalizador --track
Também gosto da referência de documento que o @casey observa:
fonte
O que funcionou para mim foi: git branch --set-upstream-to = origin master Quando fiz um pull novamente, só recebi as atualizações do master e o aviso foi embora.
fonte
Se, como eu, você precisar fazer isso o tempo todo, poderá configurar um alias para fazê-lo automaticamente, adicionando o seguinte ao seu
.gitconfig
arquivo:Quando você vir a mensagem
There is no tracking information...
, basta executargit set-upstream
egit push
novamente.Obrigado a https://zarino.co.uk/post/git-set-upstream/
fonte
Para baixar apenas as atualizações:
No entanto, isso apenas atualiza uma referência chamada
origin/master
. A melhor maneira de atualizar seu localmaster
seria o checkout / mesclagem mencionado em outro comentário. Se você pode garantir que seu localmaster
não tenha divergido do tronco principalorigin/master
, você pode usargit update-ref
para mapear sua correntemaster
para o novo ponto, mas essa provavelmente não é a melhor solução a ser usada regularmente ...fonte
Este comando foi descontinuado:
git branch --set-upstream master origin/master
Portanto, ao tentar configurar o rastreamento, este é o comando que funcionou para mim:
fonte