Não estou familiarizado com o shelve
aspecto do Git. Se stash
é usado para deixar de lado o trabalho inacabado, o que é shelve
então? Para que você usaria isto?
Por exemplo, em Atualizar Projeto (no menu VCS)
obteremos (no Idea 2019.2)
git
intellij-idea
jetbrains-ide
Edgar Martinez
fonte
fonte
shelve
não é um comando git. Qual é o contexto desta pergunta, de onde vêm esses termos?shelve
existe em algumas outras ferramentas, mas não faz parte do git.shelve
bzr, hg, etc. Você está se referindo a algum pacote de interoperabilidade do git?Respostas:
git shelve
não existe no Git.Apenas
git stash
:Você tinha um projeto antigo de 2008 com git shelve para isolar modificações em uma ramificação, mas isso não seria muito útil atualmente.
Conforme documentado na caixa de diálogo Arquivar Intellij IDEA , o recurso " arquivamento e remoção " não está vinculado a um VCS (ferramenta Sistema de Controle de Versão), mas ao próprio IDE, para armazenar temporariamente alterações pendentes que você ainda não confirmou na lista de alterações.
Observe que, desde o Git 2.13 (Q2 2017), agora você também pode ocultar arquivos individuais .
fonte
git stash && <your actual command> && git stash pop
mas isso é péssimo. Arquivar automaticamente e aplicar está mais próximo do que precisamos.Ao usar os IDE do JetBrains com o Git, "as ações de esconderijo e descolagem são suportadas, além de prateleiras e descolagens. Esses recursos têm muito em comum; a principal diferença está na maneira como os patches são gerados e aplicados. O Shelve pode operar com arquivos ou agrupamentos individuais de arquivos, enquanto o Stash pode operar com um monte de arquivos alterados de uma só vez. Aqui estão mais alguns detalhes sobre as diferenças entre eles ".
fonte
git stash -p
quem supera os dois. Infelizmente apenas na linha de comando.Além das respostas anteriores, há uma importante para mim, observe:
shelve
é característica produtos JetBrains (tais comoWebStorm
,PhpStorm
,PyCharm
, etc.). Coloca arquivos arquivados no.idea/shelf
diretório.stash
é uma dasgit
opções. Ele coloca os arquivos ocultos no.git
diretório.fonte
Eu preferiria arquivar as alterações em vez de escondê-las se não estiver compartilhando minhas alterações em outro lugar.
O armazenamento em cache é um recurso do git e não oferece a opção de selecionar arquivos ou alterações específicas dentro de um arquivo. As prateleiras podem fazer isso, mas esse é um recurso específico do IDE, não um recurso git:
Como você pode ver, eu posso escolher quais arquivos / linhas incluir na minha prateleira. Note que eu não posso fazer isso com esconderijo.
Cuidado ao usar prateleiras no IDE pode limitar a portabilidade de seus patches porque essas alterações não são armazenadas em uma pasta .git.
Alguns links úteis:
fonte