Каковы типичные случаи использования флагов --merge и --keep в git-reset?

Внедавний ответ в котором он подробно описывает типичные случаи использованияgit-resetтри наиболее часто используемых варианта (--hard, --mixed, а также--soft),Торек мимоходом упоминает, чтоgit-reset также предлагает два относительно эзотерических флага, называемые--merge а также--keep,git-reset справочная страница описывает эти два флага следующим образом:

--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.

Я прекрасно понимаю, когда использовать--hard, --mixed, или же--soft, но я только узнал, что--merge а также--keep существовал при чтении ответа Торека, и я не могу представить практические варианты использования этих двух флагов ... В каких ситуациях вы обычно используете эти два флага?

Я в основном ищу простое английское объяснение. Возьмите следующий отрывокэтот ответ VonC, который излагает типичный вариант использования дляgit reset --soft, как модель:

[...] каждый раз:

вы удовлетворены тем, что вы в конечном итоге (с точки зрения рабочего дерева и индекса)Вы не удовлетворены всеми коммитами, которые потребовали вас, чтобы попасть туда:

git reset --soft это ответ.

Тем не менее, я не против небольшого эксперимента с этими флагами, похожего по духу на глупый пример списка покупок, который я разместил вэтот мой ответ.

Ответы на вопрос(1)

Ваш ответ на вопрос