del Manuale Hg GitConcepts pagina spiega come eseguire molte azioni con gli utenti git
in Mercurial.
Mercurial non ha alcun comportamento integrato git reset --hard
. Tuttavia, l'estensione strip
fornisce un comando strip
che lo fa. Per utilizzare, first enable strip
nel file ~/.hgrc
::
[extensions]
strip =
Nota: questa estensione in nuovi in Mercurial-2.8. Le versioni precedenti fornivano il comando strip
nello mq
extension.
Ora è possibile eseguire comandi come hg strip
o anche hg help strip
. Per rimuovere un changeset e tutti i suoi figli, è sufficiente specificare tale changeset come argomento su hg strip
. Ad esempio, per rimuovere l'ultimo commit appena effettuato (dopo aver utilizzato i comandi che hanno causato che hg rollback
segnala che non esiste più alcuna transazione per il rollback), è possibile rimuovere la revisione tip
. Ogni volta che si esegue questo comando, verrà rimossa un'altra revisione. Le azioni hg strip
devono essere considerate irreversibili; gli utenti non familiari dovrebbero fare i backup dei loro repository prima dell'uso.
$ hg strip tip
Ad esempio, con revsets syntax, mi indicano che voglio togliere qualunque impegna miei che danno luogo a teste in più viene mostrato quando corro hg heads
. Se si specifica una revisione particolare nell'espressione seguente diversa da tip
, tutto il ramo corrente che non è un antenato della revisione scelta verrà tagliato. Questo sembra più vicino al comportamento che desidero quando invio il comando git reset --hard HEAD
.
$ hg strip "branch(tip) and not(ancestors(tip)::tip)"
possibile duplicato (http: // StackOverflow. it/questions/4172753/how-to-get-rid-of-some-changeset-in-hg) – binki