Configurei um repositório "principal" remoto e não clonado e o clonei no meu computador. Fiz algumas alterações locais, atualizei meu repositório local e enviei as alterações de volta ao repositório remoto. As coisas estavam bem até esse ponto.
Agora, tive que mudar alguma coisa no repositório remoto. Então mudei algo no meu repositório local. Percebi que a alteração no repositório remoto não era necessária. Então, tentei git pushdo meu repositório local para o meu repositório remoto, mas recebi um erro como:
Para impedir que você perca o histórico, as atualizações de avanço rápido não foram rejeitadas Mesclar as alterações remotas antes de enviar novamente. Consulte a seção "Observação sobre avanço rápido"
git push --helppara obter detalhes.
Eu pensei que provavelmente um
git push --force
forçaria minha cópia local a enviar alterações para a remota e torná-la a mesma. Força a atualização , mas quando eu volto ao repositório remoto e faço uma confirmação, percebo que os arquivos contêm alterações desatualizadas (que o repositório remoto principal tinha anteriormente).
Como mencionei nos comentários a uma das respostas :
[I] tentei forçar, mas, ao voltar ao servidor mestre para salvar as alterações, fico com a preparação desatualizada. Assim, quando eu comprometo os repositórios não são os mesmos. E quando tento usar o git push novamente, recebo o mesmo erro.
Como posso corrigir esse problema?
git push --forceé de fato outra maneira válida de forçar push, e empurrará ramificações da mesma forma que git push origin master --forcecom o padrão do Git push.default config settings, embora quais ramificações forçadas especificamente sejam diferentes das versões do Git antes da versão 2.0 e depois da 2.0.
git push --forcefunciona bem nos dias de hoje, FWIW ...
git push --force-with-leasefunciona ainda melhor :), ele se recusará a atualizar um ramo, a menos que seja o estado que você espera. (consulte developer.atlassian.com/blog/2015/04/force-with-lease )
git push -forceprocedimento com mais cuidado .