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 push
do 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 --help
para 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 --force
com 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 --force
funciona bem nos dias de hoje, FWIW ...
git push --force-with-lease
funciona 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 -force
procedimento com mais cuidado .