web-dev-qa-db-ja.com

HG:履歴からコミットを取り消す

リビジョン1、2、3、4、5、6のHGリポジトリがあります。

リビジョン4をコミットしたとき、私は知らないうちにrev3にあるべきでないいくつかの変更を失敗させました。リビジョン6がコミットされるまで、私はこれに気づきませんでした。

リビジョン4での変更を元に戻す必要がありますが、その後、他のすべての変更を再適用します。基本的にコミットの取り消し#4。どうやってやるの?

30
Donn Felker

あなたは欲しい hg backout

以前の changeset ...の効果を元に戻す/元に戻す.

バックアウトは、バックアウトされるチェンジセットの反対のチェンジセットを適用することで機能します。その新しいチェンジセットは repository にコミットされ、最終的にマージされます...

40
Jim Bolla

MQ拡張機能を使用できます。

hg qinit
hg qimport -r 4:tip
hg qpop -a
hg qdelete 4.diff
hg qpush -a
hg qfinish -a

上記はあなたが歴史をどのように書き直すかであり、私が信じたいものです。

hg backoutを使用することもできますが、これにより作業ディレクトリでのコミットが取り消され、コミットできます。

5
manojlds