Não foi possível "git stash pop" devido a conflito


19

Eu tenho um repositório git local e tinha vários arquivos modificados. Então eu precisava produzir rapidamente uma correção para algo, então eu

  • escondeu minhas alterações (git stash)
  • arquivo editado (arquivo vi)
  • comprometido (git commit)
  • stash estalado (git stash pop)

Isso resultou em conflito.

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

Se eu tentar limpar as alterações e reaplicar o stash, acontece o mesmo (conflito). Eu não me importo muito com a página / search.php, mas gostaria de obter outros arquivos do stash.

Existe uma maneira de converter stash em um patch ou simplesmente obter os arquivos como estavam quando estavam escondidos?

Respostas:


20

O stash já foi aplicado a outros arquivos; é só page/search.phpque você precisa mesclar manualmente. Depois, basta correr git resetpara desestabilizar as alterações e continuar a hackear - ou git add ...e confirmar.


Sim. Exatamente. Depois de recuperar o patch com -p, descobri que outros arquivos já estão atualizados.
romaninsh

3
muito bom, git stash pop, resolver seus conflitos, em seguida, git add xem seguida, git resetpara tirá-lo do estadiamento, Thanks!
Quang

@ Quang Deve haver um apelido stash pop --continuepara reset. :)
Kaz

12

Resolvido com:

git stash show -p

Isso salvou o meu dia, =)
anatoly techtonik

Faz -palguma coisa aqui?
Joost

2
mostrar? -p? o que isso faz? como "show" pode estar relacionado para resolver conflitos?
Arnold Roa

2
Este comando mostra as alterações feitas no stash, permitindo que você mescle manualmente
Desmond Weindorf 17/18

1
Encontrei git stash show -p | git apply && git stash dropem coderwall.com/p/anxp0g/force-a-git-stash-pop e estou tentando verificar se funcionará antes de executá-lo. :-)
PatS 01/08/19

7

Após o git stash popcomando, você deverá resolver o conflito manualmente e git stash dropmanualmente, conforme man git-stashsugerido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.