Eu fiz um git stash pop
e acabei com conflitos de mesclagem. Eu removi os arquivos do sistema de arquivos e fiz um git checkout
como mostrado abaixo, mas ele acha que os arquivos ainda não foram alterados. Eu tentei substituir os arquivos e fazer o git checkout
mesmo resultado. Eu tentei forçá-lo com -f
bandeira. Qualquer ajuda seria apreciada!
chirag-patels-macbook-pro:haloror patelc75$ git status
app/views/layouts/_choose_patient.html.erb: needs merge
app/views/layouts/_links.html.erb: needs merge
# On branch prod-temp
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: db/schema.rb
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# unmerged: app/views/layouts/_choose_patient.html.erb
# unmerged: app/views/layouts/_links.html.erb
chirag-patels-macbook-pro:haloror patelc75$ git checkout app/views/layouts/_choose_patient.html.erb
error: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
chirag-patels-macbook-pro:haloror patelc75$ git checkout -f app/views/layouts/_choose_patient.html.erb
warning: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
git
git-stash
git-checkout
Chirag Patel
fonte
fonte
git stash apply/pop
deve ser mais fácil com Git 2,5 (Q2 2015), já que a árvore de trabalho agora precisa ser limpa: ver minha resposta abaixoRespostas:
Veja man git merge ( COMO RESOLVER CONFLITOS ):
E em TRUE MERGE (para ver o que 2. e 3. se refere):
Portanto: use
git reset --hard
se você deseja remover as alterações de stash da sua árvore de trabalho ougit reset
se deseja apenas limpar o índice e deixar que os conflitos na sua árvore de trabalho sejam mesclados manualmente.Em man git stash ( OPTIONS, pop ), você pode ler além disso:
fonte
Aconteceu uma coisa parecida comigo. Eu não queria preparar os arquivos ainda por isso, então os adicionei
git add
e o fizgit reset
. Basicamente, isso acabou de adicionar e desestabilizar minhas alterações, mas limpou os caminhos não mesclados.fonte
reset --hard
porque não substitui seus arquivos (exceto aqueles com problemas de mesclagem). Obrigado!add
conteúdo da árvore de trabalho não está no índice? Acho que não entendo por que sua resposta funciona a partir da descrição.git add
osgit reset
encena, mas , o que eu faço imediatamente depois, os desestabiliza. Essencialmente, ele limpa os caminhos não imersos e me devolve à minha árvore de trabalho normal, falsificando o git.git add
se vaigit reset
. Ogit reset
efetivamente "desfaz" ogit add
.git reset
(--mixed
<- padrão) efetivamente não toca no diretório de trabalho, portanto, exatamente o que estava no seu diretório de trabalho, mescla conflitos e tudo, é deixado em paz. Porém, o índice (e tecnicamente o cabeçalho da ramificação) é redefinido (sem uma ref, eles são redefinidos novamenteHEAD
, o que provavelmente significa que não há alterações para a cabeça da ramificação e desfaz efetivamente qualquergit add
feito no índice, além de limpar o estado dos caminhos não imersos) .git reset
egit stash drop
funciona bem. Faz o quegit stash pop
teria feito sem conflitos. Parece que ogit add
não é necessário; embora seja útil, você tem muitos arquivos com conflitos. À medida que cada um é resolvido , eles podem ser adicionados egit status
os acompanha.Se, como eu, o que você normalmente deseja sobrescrever o conteúdo do diretório ativo pelo dos arquivos ocultos, e você ainda tiver um conflito, o que você deseja é resolver o conflito usando
git checkout --theirs -- .
a raiz.Depois disso, você pode
git reset
trazer todas as alterações do índice para o diretório de trabalho, pois, aparentemente, em caso de conflito, as alterações em arquivos não conflitantes permanecem no índice.Você também pode querer correr
git stash drop [<stash name>]
depois, para se livrar do esconderijo, porquegit stash pop
não o exclui em caso de conflitos.fonte
Observe que
Git 2.5 (segundo trimestre de 2015)um futuro Git pode tentar tornar esse cenário impossível.Consulte commit ed178ef por Jeff King (
peff
), 22 de abril de 2015.(Mesclado por Junio C Hamano -
gitster
- no commit 05c3967 , 19 de maio de 2015)Nota: Isso foi revertido. Veja abaixo .
Problema
Em outras palavras:
Solução
Consulte commit 1937610 (15 de junho de 2015) e commit ed178ef (22 de abril de 2015) por Jeff King (
peff
) .(Mesclado por Junio C Hamano -
gitster
- na confirmação bfb539b , 24 de junho de 2015)fonte