¿Cuáles son los casos de uso típicos de las banderas --merge y --keep de git-reset?
en unrespuesta reciente en el que detalla los casos de uso típicos degit-reset
Las tres opciones más utilizadas (--hard
, --mixed
y--soft
),torek menciona de pasada quegit-reset
también ofrece dos banderas relativamente esotéricas, llamadas--merge
y--keep
. losgit-reset
página man describe esas dos banderas de la siguiente manera:
--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.
Entiendo perfectamente cuándo usar--hard
, --mixed
o--soft
, pero solo aprendí que--merge
y--keep
existía mientras leía la respuesta de torek, y no puedo pensar en casos prácticos de uso de esas dos banderas ... ¿En qué situaciones usas normalmente esas dos banderas?
Principalmente estoy buscando una explicación sencilla en inglés. Tome el siguiente pasaje deesta respuesta de VonC, que explica un caso de uso típico paragit reset --soft
, como modelo:
[...] cada vez:
está satisfecho con lo que termina (en términos de árbol de trabajo e índice)no está satisfecho con todos los compromisos que lo llevaron a llegar allí:git reset --soft
es la respuesta.
Sin embargo, no evito un pequeño experimento con esas banderas, similar en espíritu al tonto ejemplo de la lista de compras que publiqué enesta respuesta mia.