Se isso não resolver o seu problema, certifique-se de que você está enviando para o mesmo branch daquele em que está trabalhando no momento. Verifique em qual branch você está com o "status git".
afilina
1
Este comando funcionou comigo, mas gostaria de saber, por que não git pull:? O controle remoto é igual origin, para que ele realmente funciona: git pull origin. Não deveria atualizar todos os ramos?
Karlen Kishmiryan de
83
Adicione --force à sua linha de comando se tiver certeza de que deseja enviar. Por exemplo, use git push origin --force(eu recomendo a linha de comando, pois você encontrará muito mais suporte de outros usuários com a linha de comando. Também pode não ser possível com o SmartGit.) Consulte este site para obter mais informações: http://help.github.com/ Remotos/
--force resolverá seus problemas, mas potencialmente prejudicará outras pessoas. Deve ser usado apenas com muito cuidado (e conhecimento)
schoetbi
7
-1 porque forçar empurra em geral é uma ideia terrível.
joshin4colours
6
+1 porque 5 pessoas concordaram com @ joshin4colours em dar -1. Mas embora o push forçado nem sempre seja a melhor ideia (o que o git deixa bem claro ao negar o push), se fosse uma ideia ruim 100% do tempo, a opção não existiria. A sugestão de Matt aqui certamente pode ser útil para outras pessoas.
user1271772
2
Sinta-se à vontade para usar o --forcese você for o único usando esse branch. No entanto, isso causa problemas ao compartilhar um branch com outros desenvolvedores.
Robert Brisita
22
Antes de empurrar, faça um git pull com a opção rebase. Isso obterá as alterações que você fez online (em sua origem) e as aplicará localmente, em seguida, adicionará suas alterações locais sobre elas.
Eu tive uma situação estranha em que isso é exatamente o que eu queria fazer ... explodir o conteúdo de um branch master remoto recém-criado com algo novo. Isso resolveu meu problema. Embora não seja a solução para todos, --forcepode ser útil.
Brad
1
Não acho que essa resposta mereça ser rejeitada 6 vezes. Esta é uma solução válida para o problema fornecido, no entanto, o autor poderia ter sido um pouco mais descritivo sobre as circunstâncias em que este comando seria útil. Vale a pena mencionar, pois vale a pena escrever (a funcionalidade para --force)
Aiden Strydom
5
Eu tive o mesmo problema.
O motivo era que minha filial local havia de alguma forma perdido o rastreamento para a contraparte remota.
Parece que você perdeu as alterações no branch remoto
ozma
5
Você pode adicionar --force-with-lease ao comando, ele funcionará.
git push --force-with-lease
--force é destrutivo porque sobrescreve incondicionalmente o repositório remoto com tudo o que você tem localmente. Mas --force-with-lease garante que você não sobrescreva o trabalho de outros.
(Um) Solução para Netbeans 7.1: Experimente um pull. Isso provavelmente também falhará. Agora dê uma olhada nos logs (eles geralmente são mostrados agora no IDE). Há uma / mais linhas dizendo:
"A extração falhou devido a este arquivo:"
Pesquise esse arquivo, exclua-o (faça um backup antes). Normalmente é um arquivo .gitignore, portanto, você não excluirá o código. Refaça o push. Tudo deve funcionar bem agora.
Respostas:
Puxe as alterações primeiro:
fonte
git pull
:? O controle remoto é igualorigin
, para que ele realmente funciona:git pull origin
. Não deveria atualizar todos os ramos?Adicione --force à sua linha de comando se tiver certeza de que deseja enviar. Por exemplo, use
git push origin --force
(eu recomendo a linha de comando, pois você encontrará muito mais suporte de outros usuários com a linha de comando. Também pode não ser possível com o SmartGit.) Consulte este site para obter mais informações: http://help.github.com/ Remotos/fonte
--force
se você for o único usando esse branch. No entanto, isso causa problemas ao compartilhar um branch com outros desenvolvedores.Antes de empurrar, faça um git pull com a opção rebase. Isso obterá as alterações que você fez online (em sua origem) e as aplicará localmente, em seguida, adicionará suas alterações locais sobre elas.
Agora, você pode empurrar para remoto
Para obter mais informações, dê uma olhada na explicação do rebase Git e no Capítulo 3.6 Ramificação do Git - Rebase .
fonte
git pull --rebase
acaba comThere is no tracking information for the current branch. Please specify which branch you want to rebase against.
Encontrei o mesmo erro, basta adicionar "--force" ao comando, funciona
fonte
--force
pode ser útil.Eu tive o mesmo problema.
O motivo era que minha filial local havia de alguma forma perdido o rastreamento para a contraparte remota.
Depois de
e resolvendo os conflitos de fusão, consegui empurrar.
fonte
Você pode adicionar --force-with-lease ao comando, ele funcionará.
--force é destrutivo porque sobrescreve incondicionalmente o repositório remoto com tudo o que você tem localmente. Mas --force-with-lease garante que você não sobrescreva o trabalho de outros.
Veja mais informações aqui .
fonte
(Um) Solução para Netbeans 7.1: Experimente um pull. Isso provavelmente também falhará. Agora dê uma olhada nos logs (eles geralmente são mostrados agora no IDE). Há uma / mais linhas dizendo:
"A extração falhou devido a este arquivo:"
Pesquise esse arquivo, exclua-o (faça um backup antes). Normalmente é um arquivo .gitignore, portanto, você não excluirá o código. Refaça o push. Tudo deve funcionar bem agora.
fonte
Usar a
--rebase
opção funcionou para mim.git pull <remote> <branch> --rebase
Em seguida, envie para o repositório.
git push <remote> <branch>
Por exemplo
git pull origin master --rebase
git push origin master
fonte
Eu tive o mesmo problema. Eu resolvi com
fonte
checkout
substituirá essas alterações ou, pelo menos, não as incluirá no push.Isto é o que funcionou para mim. Ele pode ser encontrado na documentação do git aqui
Se você estiver no ramo desejado, pode fazer o seguinte:
fonte
Encontrou o mesmo problema, para resolvê-lo, execute os seguintes
git
comandos.git pull {url} --rebase
git push --set-upstream {url} master
Você deve ter criado o repositório no github primeiro.
fonte
Às vezes, enquanto puxa o git, o HEAD se solta. Você pode verificar isso inserindo o comando:
É melhor ir para o seu branch e dar uma nova tragada no seu respectivo branch.
fonte