Estou tentando enviar meu projeto (todos os arquivos em um novo repositório). Sigo as etapas, mas quando pressiono git push -u origin master
, recebo este erro:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:asantoya/projectnewbies.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Eu recebi esse erro várias vezes e não consigo descobrir o que fazer.
git push --force <remote_repository>
trabalhou para mim.Respostas:
Como a mensagem de erro diz:
git pull
antes de tentargit push
. Aparentemente, sua filial local está fora de sincronia com a filial de rastreamento.Dependendo das regras do projeto e do seu fluxo de trabalho, você também pode querer usar
git pull --rebase
.fonte
git push --force origin master
. Se você se deparar com esse tipo de problema mais de uma vez na vida, o fluxo de trabalho do seu projeto será interrompido. Os recursos devem ser desenvolvidos em ramificações e mesclados sem avanço rápido e, se um recurso "falhar", você deve reverter a consolidação de mesclagem (de preferência faça seu teste em um ramo de integração antes de mesclar um recurso a ser dominado). Nenhuma idéia sobre Eclipse embora.git pull origin trunk:master
?AVISO: este nunca é um uso recomendado do git. Isso substituirá as alterações no controle remoto. Faça isso apenas se souber 100% de que as alterações locais devem ser enviadas ao mestre remoto.
Tente o seguinte:
git push -f origin master
fonte
git help push
: "Isso pode fazer com que o repositório remoto perca confirmações; use-o com cuidado."esse comando funcionou bem para mim
fonte
Acabei de receber este erro.
Eu criei um repositório github depois de criar meu repositório git local, então eu precisava aceitar as alterações no local antes de enviar para o github. Nesse caso, a única alteração foi o arquivo leia-me criado como etapa opcional ao criar o repositório do github.
O URL do repositório é obtido aqui na página do projeto no github:
Em seguida, reinicializei (isso pode não ser necessário)
Em seguida, pressione:
fonte
Eu criei um novo repositório no github e tive o mesmo problema, mas ele também teve problemas ao puxar, então isso funcionou para mim.
fonte
AVISO:
Ir para um '
git pull
' não é sempre uma solução, portanto, tenha cuidado. Você pode enfrentar esse problema (o mencionado no Q) se você tiver intencionalmente alterado seu histórico de repositório. Nesse caso, o git está confundindo as alterações no seu histórico com as novas alterações no repositório remoto. Portanto, você deve optar por umgit push --force
, porque a chamadagit pull
desfará todas as alterações que você fez no seu histórico, intencionalmente.fonte
Se
git pull
isso não ajudar, é provável que você tenha pressionado suas alterações (A) e depois disso você tenhagit commit --amend
adicionado mais algumas alterações (B). Portanto, o git pensa que você pode perder o histórico - ele interpreta B como um commit diferente, apesar de conter todas as alterações de A.Se ninguém alterar o repo depois
A
, você poderá fazê-logit push --force
.No entanto, se houver alterações depois
A
de outra pessoa:então você deve refazer a alteração das pessoas de
A
paraB
(C
->D
).ou corrija o problema manualmente. Ainda não pensei em como fazer isso.
fonte
use este comando:
git pull --allow-unrelated-histories <nick name of repository> <branch name>
gostar:
git pull --allow-unrelated-histories origin master
esse erro ocorre quando os projetos não têm nenhum ancestral comum.
fonte
use força bruta ;-) Provavelmente você está tentando adicionar uma pasta local criada antes de criar o repositório no git.
fonte
Isso ocorre porque você fez algumas alterações em seu mestre, portanto o projeto pede que você puxe primeiro. Se você deseja pressioná-lo de qualquer maneira, pode usar força bruta digitando isto:
Lembre-se de primeiro confirmar suas alterações:
fonte
Tente este comando: "git pull origin master"
Funcionou para mim.
Verifique este link: https://help.github.com/articles/dealing-with-non-fast-forward-errors
fonte
Você precisa fazer
se a saída for algo como:
então faça
Verifique se você não possui confirmações pendentes, pois o check-out perderá todas as alterações não confirmadas.
fonte
! [rejeitado] mestre -> mestre (avanço não rápido)
Não entre em pânico, isso é extremamente fácil de corrigir. Tudo o que você precisa fazer é emitir um pull e sua filial avança rapidamente:
$ git pull myrepo mestre
Em seguida, tente novamente e tudo ficará bem:
$ git push github master
fonte
Isso aconteceu comigo quando eu estava no ramo de desenvolvimento e meu ramo mestre não está na atualização mais recente.
Então, quando tentei empurrar o git push do branch de desenvolvimento, tive esse erro.
Corrigi-o alternando para master branch, git pull e depois volto a desenvolver branch e git push.
fonte
Eu tive esse problema em uma máquina de desenvolvimento. O
dev
galho estava empurrando bem, mas omaster
galho me deu (enquantogit push
estava nodev
galho):Então eu tentei:
O que me deu:
Descobri que o ramo principal estava ausente
.git/config
e adicionei:Depois
git push
também funcionou bem nodev
ramo.fonte
Meu controle remoto não estava sincronizado com o local, portanto funcionou para mim
git pull --rebase
e certifique-se de que, ao fazê
git pull
-lo novamente, já deve estar atualizado e agora você está pronto para avançar para a origemassumindo que você já
git remote add origin remote repository URL
Faz
A captura de tela diz tudo
Como alternativa, você pode fazer isso
fonte
Eu tive o mesmo problema. Eu uso o Git Totoise. Basta clicar com o botão direito -> TotoiseGit -> Limpar. Agora você pode enviar para o Github. Funcionou bem comigo: D
fonte
Isso ocorre porque você fez alterações conflitantes no mestre. E seu servidor de repositório não é capaz de lhe dizer isso com essas palavras; portanto, esse erro ocorre porque não é uma questão dele lidar com esses conflitos para você, então ele pede que você faça isso sozinho. Como ?
1-
git pull
Isso mesclará seu código do seu repositório ao código do seu site mestre. Então os conflitos são mostrados.2- tratar esses conflitos manualmente.
3-
E pronto, seu problema foi resolvido.
fonte
O único que consegui resolver esse problema foi excluir o repositório local e git e criar o mesmo novamente nas duas extremidades. Funciona bem por enquanto.
fonte
Se alguém tiver esse erro ao tentar enviar para o heroku, basta substituir 'origin' por 'heroku' assim: git push -f heroku master
fonte
Tente isso, no meu caso, funciona
fonte
Isso também pode ser causado devido a algum erro de nome causado ao dar um nome ao Repo. Se alguma das respostas acima não tiver funcionado, isso funcionou para mim:
Exclua esse repositório e crie um novo e tente os seguintes comandos novamente:
se adicionar origem já existir, use isto:
fonte