Quais são os casos de uso típicos dos sinalizadores --merge e --keep do git-reset?

Em umresposta recente em que ele detalha os casos de uso típicos degit-resetas três opções mais usadas (--hard, --mixede--soft),torek menciona de passagem quegit-reset também oferece duas bandeiras relativamente esotéricas, chamadas--merge e--keep. ogit-reset página de manual descreve esses dois sinalizadores da seguinte maneira:

--merge

   Resets the index and updates the files in the working tree
   that are different between <commit> and HEAD, but keeps
   those which are different between the index and working tree
   (i.e. which have changes which have not been added). If a
   file that is different between <commit> and the index has
   unstaged changes, reset is aborted.

   In other words, --merge does something like a git read-tree
   -u -m <commit>, but carries forward unmerged index entries.

--keep
    Resets index entries and updates files in the working tree
    that are different between <commit> and HEAD. If a file that
    is different between <commit> and HEAD has local changes,
    reset is aborted.

Eu entendo perfeitamente quando usar--hard, --mixedou--soft, mas eu só aprendi isso--merge e--keep existia enquanto lia a resposta de torek, e não consigo pensar em casos de uso prático dessas duas bandeiras ... Em que situações você normalmente usa essas duas bandeiras?

Estou procurando principalmente uma explicação simples em inglês. Tome a seguinte passagem deesta resposta por VonC, que descreve um caso de uso típico paragit reset --soft, como um modelo:

[...] cada vez:

você está satisfeito com o que termina (em termos de árvore de trabalho e índice)você não está satisfeito com todos os commits que levaram para chegar lá:

git reset --soft é a resposta.

No entanto, não estou acostumado a um pequeno experimento com essas bandeiras, semelhante em espírito ao exemplo bobo de lista de compras que publiquei emesta minha resposta.

questionAnswers(1)

yourAnswerToTheQuestion