Eu editei meus repositórios GIT via Git Online. Depois de tentar empurrar minhas alterações de código local, recebi um erro:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Como posso consertar isso?
Eu editei meus repositórios GIT via Git Online. Depois de tentar empurrar minhas alterações de código local, recebi um erro:
Git push failed, To prevent from losing history, non-fast forward updates were rejected.
Como posso consertar isso?
Respostas:
Puxe as alterações primeiro:
git pull origin branch_name
git pull
:? O controle remoto é igual origin
, 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/
--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.
git pull --rebase
Agora, você pode empurrar para remoto
git push
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 .
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
git push origin master --force
--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
git branch branch_name --set-upstream-to=origin/branch_name
git pull
e resolvendo os conflitos de fusão, consegui empurrar.
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.
Veja mais informações aqui .
(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.
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
Eu tive o mesmo problema. Eu resolvi com
git checkout <name branch>
git pull origin <name branch>
git push origin <name branch>
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:
git fetch origin
# Fetches updates made to an online repository
git merge origin YOUR_BRANCH_NAME
# Merges updates made online with your local work
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.
Às vezes, enquanto puxa o git, o HEAD se solta. Você pode verificar isso inserindo o comando:
git branch
(HEAD separado de 8790704)
mestre
desenvolve
É melhor ir para o seu branch e dar uma nova tragada no seu respectivo branch.
git checkout develop
git pull origin develop
git push origin develop