Estou recebendo o seguinte erro, ao tentar o primeiro push do Github:
[rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]:me/me.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'non-fast forward'
section of 'git push --help' for details.
como posso corrigir isso e mesclar alterações remotas?
git pull
, fazer outra cometer e, em seguida, ele deve ser bomgit checkout other-branch; git pull; git push; git checkout branch-i-was-working-on
.Você também pode forçar um empurrão adicionando o símbolo + antes do nome do seu ramo.
fonte
git reset --hard
Você provavelmente tem alterações no github que nunca mesclou. Tente
git pull
buscar e mesclar as alterações, para poder fazer o push. Desculpe se eu entendi mal sua pergunta.fonte
Se você "git pull" e ele diz "Já está atualizado." E ainda receber esse erro, pode ser porque um de seus outros ramos não está atualizado. Tente mudar para outro ramo e verifique se também está atualizado antes de tentar "empurrar o git" novamente:
Alterne para o ramo "foo" e atualize-o:
Você pode ver os ramos que você obteve, emitindo o comando:
fonte
Você pode forçá-lo a pressionar, mas faça isso SOMENTE quando tiver certeza do que está fazendo.
O comando é:
fonte
Esse problema também pode ocorrer quando você possui tags conflitantes. Se sua versão local e remota usarem o mesmo nome de tag para confirmações diferentes, você poderá terminar aqui.
Você pode resolver isso excluindo a tag local:
fonte
Quando recebi esse erro, fiz backup de toda a pasta do projeto. Então eu fiz algo como
... dependendo do nome do seu ramo (se não for mestre).
Então eu fiz
git pull --rebase
. Depois disso, substituí os arquivos puxados pelos arquivos do meu projeto de backup. Agora estou pronto para confirmar minhas alterações novamente e enviar por push.fonte
1) Forçando um pull a substituir alterações locais
Se você não se importa com as alterações feitas localmente e deseja obter o código do repositório, pode forçar uma atração. Isso substituirá todas as alterações locais feitas no seu computador e uma cópia duplicada da versão no repositório será exibida.
Execute os seguintes comandos no seu IDE:
Isso destruirá instantaneamente todas as alterações locais, portanto, saiba o que está fazendo e não precise das alterações locais.
2) Manter as duas alterações (local e do repo)
Se você deseja manter as duas alterações (alterações feitas localmente e alterações presentes no repositório), você pode adicionar e confirmar suas alterações. Quando você puxa, obviamente haverá um conflito de mesclagem. Aqui você pode usar as ferramentas do seu IDE (como Difftool e mergetool) para comparar os dois trechos de código e determinar quais alterações serão mantidas e quais serão removidas. Este é o caminho do meio; nenhuma alteração será perdida até que você as remova manualmente.
fonte