Eu tenho alguns arquivos que não foram rastreados no git. Fiz algumas alterações e queria confirmá-las, mas percebi que tinha esquecido de verificar primeiro os arquivos não modificados. Então, eu escondi os arquivos e adicionei as versões não modificadas.
Então, quando aplico o stash ao repositório, encontro conflitos devido aos arquivos já terem sido adicionados.
Como posso aplicar o stash e forçar as versões no stash a serem usadas preferencialmente aos originais no repositório?
obrigado
git rm
antes de fazê-logit stash apply
.git
o tratará como apenas uma pequena modificação.Respostas:
Use em
git checkout
vez degit stash apply
:Isso restaurará todos os arquivos no diretório atual para sua versão escondida.
Se houver alterações em outros arquivos no diretório de trabalho que devem ser mantidas, aqui está uma alternativa menos pesada:
Se houver alterações no índice, ou a mesclagem tocar os arquivos com alterações locais, o git se recusará a mesclar. Arquivos individuais podem ser retirados do stash usando
ou interativamente com
fonte
git checkout stash -- .
Esse comando literalmente não fez nada quando eu o executei.git checkout stash -- .
na pasta pai mais alta que continha minhas alterações, caso contrário, ela só aplicou alterações na pasta de onde executei o comando..
especifica o diretório atual (você pode substituí-lo por um caminho diferente em vez de alterar o diretório). Atualizei minha resposta para deixar isso mais claro.git stash show -p | git apply
e
git stash drop
se você quiser soltar os itens escondidos.fonte
Para forçar,
git stash pop
execute este comandofonte
TL; DR:
Versão longa:
Você recebe esse erro devido às alterações não confirmadas que deseja substituir. Desfazer essas alterações com
git checkout HEAD
. Você pode desfazer alterações em um arquivo específico comgit checkout HEAD path/to/file
. Depois de remover a causa do conflito, você pode aplicar como de costume.fonte