Aqui está a minha estratégia para resolver o problema.
Declaração do Problema
Precisamos fazer alterações em mais de 10 arquivos. Tentamos PULL (git pull origin master)
, mas Git gritou:
erro: suas alterações locais nos seguintes arquivos seriam substituídas por mesclagem: confirme ou armazene as alterações antes de poder mesclar.
Tentamos executar commit
e depois pull
, mas eles também não funcionaram.
Solução
Na verdade, estávamos no estágio sujo , porque os arquivos estavam na "Área de preparação", também conhecida como "Área de índice", e alguns estavam na "Área principal", também conhecida como "diretório local do Git". E queríamos extrair as alterações do servidor.
Verifique este link para obter informações sobre diferentes estágios do Git de maneira clara: Estágios do GIT
Seguimos os seguintes passos
git stash
(isso tornou nosso diretório de trabalho limpo. Suas alterações são armazenadas na pilha pelo Git).
git pull origin master
(Puxe as alterações do servidor)
git stash apply
(Aplicadas todas as alterações da pilha)
git commit -m 'message'
(Confirmou as alterações)
git push origin master
(Enviou as alterações para o servidor)
git stash drop
(Largue a pilha)
Vamos entender quando e por que você precisa esconder
Se você estiver no estado sujo , significa que está fazendo alterações em seus arquivos e, por qualquer motivo, é obrigado a puxar ou alternar para outra ramificação para algum trabalho muito urgente; portanto, neste momento, não é possível puxar ou alterne até confirmar sua alteração. O stash
comando está aqui como uma mão amiga.
Do livro ProGIT , 2ª Edição:
Freqüentemente, quando você trabalha em parte de seu projeto, as coisas estão em um estado confuso e você deseja alternar entre ramificações um pouco para trabalhar em outra coisa. O problema é que você não deseja confirmar o trabalho pela metade apenas para voltar a esse ponto mais tarde. A resposta para esse problema é o comando git stash. O armazenamento em cache leva o estado sujo do seu diretório de trabalho - ou seja, os arquivos rastreados modificados e as alterações faseadas - e o salva em uma pilha de alterações inacabadas que você pode aplicar novamente a qualquer momento.