As variantes "stash" e "snapshot" criam os mesmos objetos stash. A diferença é que, quando você cria um instantâneo, as alterações ocultas não são removidas dos arquivos na árvore de trabalho e / ou no índice. (Assim como quando você tira uma foto de seus amigos se divertindo - isso também não os faz desaparecer ;-)
Isso é planejado como um tipo de mecanismo de backup. Digamos que você esteja executando uma refatoração complicada e que acabou de testar e o código modificado ainda parece funcionar, mas ainda não foi concluído. Agora seria um bom momento para criar um instantâneo, para que você tenha algo a que voltar, se você estragar mais tarde.
É claro que você pode criar um commit "wip" temporário, diretamente no ramo em que está trabalhando, para realizar o mesmo. Geralmente é o que eu faço.
E você também pode automatizar o processo de gravação de trabalhos em andamento, ativando os modos Wip . Eu tenho esses modos ativados como uma rede de segurança, mas ainda crio confirmações wip diretamente na ramificação atual ou crio um instantâneo. É mais fácil trabalhar com eles do que os wip refs.
Observe que o Magit vem com sua própria implementação de stash, escrita em Elisp. Isso foi necessário para implementar as variantes de captura instantânea e as variantes de stash somente de árvore de trabalho e apenas de índice. O Git não fornece nenhuma dessas variantes.
stash
também redefinirá (desfará) as alterações esnapshot
deixará as alterações na área de trabalho (pode ser útil se você deseja reorganizar as confirmações antes de pressionar).