Atualização 2:
Não sei por que as pessoas estão reclamando desta resposta, parece estar funcionando perfeitamente comigo, para os arquivos não extraídos, você pode adicionar a -u
sinalização
O comando completo torna-se git stash --keep-index -u
E aqui está um trecho da git-stash
ajuda
Se a opção --keep-index for usada, todas as mudanças já adicionadas ao índice permanecem intactas.
Se a opção --include-untracked for usada, todos os arquivos não rastreados também serão armazenados e então limpos com git clean, deixando o diretório de trabalho em um estado muito limpo. Se a opção --all for usada em vez disso, os arquivos ignorados serão armazenados e limpos, além dos arquivos não rastreados.
E este é um gif de sua aparência:
Atualizar:
Mesmo sendo esta a resposta selecionada, muitos têm apontado que a [resposta abaixo] (https://stackoverflow.com/a/34681302/292408) é a correta, recomendo dar uma olhada.
Testei minha resposta novamente hoje (31/01/2020) contra a versão git 2.24.0
, e ainda acredito que está correta, adicionei uma pequena observação acima sobre os arquivos não rastreados. Se você acha que não está funcionando, mencione também sua versão git.
Resposta antiga :
Se a --keep-index
opção for usada, todas as alterações já adicionadas ao índice permanecem intactas:
git stash --keep-index
Da documentação degit-stash
:
Testando commits parciais
Você pode usar git stash save --keep-index
quando quiser fazer dois ou mais commits das mudanças na árvore de trabalho e quiser testar cada mudança antes de fazer commit:
# ... hack hack hack ...
$ git add --patch foo # add just first part to the index
$ git stash save --keep-index # save all other changes to the stash
$ edit/build/test first part
$ git commit -m 'First part' # commit fully tested change
$ git stash pop # prepare to work on all other changes
# ... repeat above five steps until one commit remains ...
$ edit/build/test remaining parts
$ git commit foo -m 'Remaining parts'
Mas, se você deseja apenas verificar visualmente apenas as alterações em estágios, você pode tentar difftool
:
git difftool --cached
-k
opção) ou complicadas de usar.