Eu tenho 2 ramos: mestre | Projeto
Trabalhando em design, fiz um stash e mudei para master, fiz alguns ajustes. Voltei ao design e fiz stash apply
apenas uma perda de todas as minhas alterações no ramo de design.
Espero que todo o meu trabalho esteja dentro de um esconderijo, pois não os apaguei ou removi.
Se eu fizer uma lista stash, obtenho 4 resultados:
stash@{0}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{1}: WIP on design: f2c0c72... Adjust Password Recover Email
stash@{2}: WIP on design: eb65635... Email Adjust
stash@{3}: WIP on design: eb65635... Email Adjust
Se eu tentar git stash apply f2c0c72
, estou recebendo um erro:
fatal: Needed a single revision
f2c0c72: no valid stashed state found
Como posso aplicar um esconderijo específico?
git stash apply 0
(em vez degit stash apply stash@{0}
). Veja minha resposta aqui .Respostas:
As chaves do esconderijo são na verdade os
stash@{n}
itens à esquerda. Então tente:(observe que em algumas conchas você precisa citar
"stash@{0}"
, como zsh, fish e powerhell).Desde a versão 2.11, é bem fácil, você pode usar o número da pilha N em vez de usá-lo
stash@{n}
. Então agora, em vez de usar:Você pode digitar:
Para obter a lista de stashes:
De fato,
stash@{0}
é uma revisão no git que você pode alternar para ... masgit stash apply ...
deve descobrir como usar o DTRT para aplicá-lo ao seu local atual.fonte
gitk stash@{0}
mostrar as alterações feitas em um estoque específico.git stash apply "stash@{0}"
stash@{n}
é o comando mais complicado de digitar. Existem atalhos para fazer isso além de criar seu próprio alias ou função?git stash apply n
é pacíficoPara aplicar um stash e removê-lo da lista de stash, execute:
Para aplicar um stash e mantê-lo no cache stash, execute:
fonte
git stash pop "stash@{n}"
git stash apply stash@"{n}"
git stash apply stash@`{n`}
(observe os backticks antes dos aparelhos).Desde a versão 2.11, é bem fácil, você pode usar o número da pilha N em vez de dizer
"stash@{n}"
. Então agora, em vez de usar:Você pode digitar:
Por exemplo, na sua lista:
Se você deseja se inscrever,
stash@{1}
pode digitar:Caso contrário, você poderá usá-lo mesmo se tiver algumas alterações no diretório desde 1.7.5.1, mas você deve ter certeza de que o stash não substituirá as alterações no diretório de trabalho, se isso ocorrer, você receberá um erro:
Nas versões anteriores à 1.7.5.1, recusava-se a funcionar se houvesse uma alteração no diretório de trabalho.
Notas de versão do Git:
fonte
Se alguém estiver em uma máquina Windows e no PowerShell, será necessário citar o argumento, como:
... ou para aplicar as alterações e remover do esconderijo:
Caso contrário, sem as aspas, você poderá receber este erro:
fonte
selecione o esconderijo a ser aplicado e use apenas o número:
fonte
A lista mostrará todos os itens ocultos, por exemplo: stash @ {0} :, stash @ {1}:, .., stash @ {n}:
Em seguida, selecione o número n que indica stash @ {n}:
fonte