Como corrigir o erro Git 'Suas alterações locais nos arquivos a seguir serão sobrescritas por mesclagem'

A mensagem de erro " Suas alterações locais nos arquivos a seguir serão sobrescritas por mesclagem " ocorre no mecanismo de controle de versão do Git. Este erro ocorre se você modificou um arquivo que também possui modificações no repositório remoto.

Erro Git: Suas alterações locais nos arquivos a seguir serão sobrescritas por mesclagem

Essa mensagem de erro é evitada SE não houver arquivos não confirmados que também possuam modificações no repositório remoto. Ao experimentar esta mensagem, é melhor consultar seus outros membros da equipe e pedir sua opinião. Se você deseja mesclar suas alterações locais ou manter a versão presente no repositório, é melhor manter todos a bordo.

O que são repositórios? O que são push e pull no Git?

Um repositório é um tipo de armazenamento para código que é constantemente modificado e obtido pelos membros da equipe através do mecanismo de controle de versão do GitHub. Um ' Pull' significa que você está puxando a versão mais recente do repositório para o seu armazenamento local / IDE (Integrated Development Environment), como o Pycharm etc.

Depois de um Pull, você faz alterações no código ou adiciona mais recursos. Quando terminar, você envia o código para o repositório para que as alterações sejam salvas e as adições sejam feitas. O código fica acessível para outras pessoas também.

Se você é novo no controle de versão do Github, é recomendável que você passe por todos os fundamentos primeiro. Neste artigo, assumimos que você já tem conhecimento básico e conhece todos os meandros.

Como corrigir 'Suas alterações locais nos arquivos a seguir serão sobregravadas por mesclagem'?

A resolução dessa mensagem de erro depende do que você deseja fazer. Você pode descartar as alterações locais e puxar as alterações no repositório ou salvar suas alterações locais em um stash e extrair a versão do repositório. Tudo depende da sua preferência.

Portanto, recomendamos que você consulte os membros de sua equipe e verifique se todos estão na mesma página antes de seguir em frente. Se você cometer errado ou empurrar a versão errada, isso pode afetar toda a equipe.

Método 1: Forçar um pull para sobrescrever alterações locais

Se você não se importa com as mudanças feitas localmente e quer obter o código do repositório, você pode forçar um pull. Isso sobrescreverá 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:

 git reset - hard git pull 

Isso destruirá instantaneamente todas as alterações locais, portanto, verifique se você sabe o que está fazendo e se não precisa das alterações locais.

Método 2: Mantendo as duas alterações (local e do repositório)

Se você quiser manter as duas alterações (alterações feitas localmente e alterações presentes no repositório), você poderá adicionar e confirmar suas alterações. Quando você puxa, obviamente haverá um conflito de mesclagem. Aqui você pode usar as ferramentas em seu IDE (como Difftool e mergetool) para comparar as duas partes do código e determinar quais alterações manter e quais remover. Este é o caminho do meio; nenhuma alteração será perdida até que você as remova manualmente.

 git adicionar $ the_file_under_error git commit git pull 

Quando você obtiver um conflito de mesclagem, insira essas ferramentas de resolução de conflitos e verifique a linha por linha.

Método 3: Mantendo as duas alterações, MAS não comprometendo

Esta situação acontece de tempos em tempos, quando os desenvolvedores não estão prontos para commitar porque há algum código parcialmente quebrado que você está depurando. Aqui podemos esconder as alterações com segurança, extrair a versão do repositório e, em seguida, liberar seu código.

 git stash save --keep-index 

ou

 git stash 
 git puxar git stash pop 

Se houver alguns conflitos depois que você abrir o stash, deverá resolvê-los da maneira usual. Você também pode usar o comando:

 git stash aplicar 

em vez de pop se você não estiver pronto para perder o código escondido devido a conflitos.

Se a mesclagem não parecer uma opção viável para você, considere fazer um rebase. Rebasing é o processo de mover ou combinar uma sequência de commits para um novo commit de base. No caso de rebasing, altere o código para:

 git stash git pull --rebase origem mestre git stash pop 

Método 4: Faça alterações em partes específicas do seu código

Se você quiser fazer alterações em partes específicas do código e não quiser substituir tudo, poderá confirmar tudo o que não deseja sobrescrever e, em seguida, seguir o método 3. Você pode usar o seguinte comando para as alterações que você deseja sobrescrever da versão presente no repositório:

 caminho de checkout git / para / file / to / revert 

ou

 git checkout HEAD caminho ^ / para / file / to / revert 

Além disso, você precisa ter certeza de que o arquivo não está preparado por:

 git reconfigure o caminho HEAD / para / file / to / revert 

Então prossiga com o comando pull:

 git pull 

Isso tentará então buscar a versão do repositório.

Artigos Interessantes