2013-05-22 7 views

答えて

-3

注:この回答は廃止されました。 @ソリナ・サンダウのthe answerを参照してください。


は、それが言うhg help commitを参照してください。

--amendフラグは新しいでの作業 ディレクトリの親を修正するために使用することができるが、 で親の変更が含まれていますコミット現在「hg status」によって報告されているものに加えて、存在する場合は追加します。 古いコミットは、バックアップバンドル ".hg/strip-backup"に保存されます( 「hgヘルプバンドル」および復元方法については、「hg help unbundle」を参照)。

+5

実際にunamendedコミットに到達するために、アンバンドル後にどの手順を実行する必要があるかを説明して、この回答を改善してください。 – akuhn

+0

@akuhn、私はそれが 'hg merge'と' hg commit -m 'message_for_the_last_commit''だと思っていますが、歴史をちょっと乱してしまいます。 – oblalex

+0

一般的に言えば、新しくアンバンドルされた 'tip'コミット自体を'修正 'するだけで、意味のあるエラーメッセージを与えることができます。そうすれば、@oblalexが提案して 'merge'します。多くの場合、新しいヒントで使用されたメッセージとして、前のヒントのコミットメッセージ( 'hg unbundle 'によって残されています)が必要になります。 –

36

あなたはhg refloghg reset <hash>journal extensionから)を使用することができます。

hg reset <old-hash> 

コミットが以前いたものに戻されますと:それは、あなたが元に戻したい改正だけで使用している場合

<old-hash> -> <new-hash> <user> <timestamp> commit --amend <some-path> 

hg reflog -v 

のようなものを与える必要があります修正された変更はコミットされていない変更(hg statushg diffを使用してチェック)になります。

+6

これは正解です。 mercurialはreflogをサポートしており、 –

+0

をリセットします。これは水銀でちょうど完全に –

+0

@ JacobKrallで動作します。これはMercurialで完璧に動作します。 – zzy

2
  1. 今、あなたは二つのヘッドが必要.hg/strip-backupディレクトリ
  2. hg unbundle <latest backup>
  3. の最新保存したバックアップを探す - 古いは改正前にコミット、二一から二のコミット(最初のものとコミット改正、他の1と1を"古いコミットハッシュのための一時的な修正コミット"。histeditの拡張子を持っていれば、それを変更するためにhg histeditを実行することができます(例えば、コミットの直前の状態を達成するためにeditを選択します。を使用するとすべての変更が表示されます)。

古いヘッドを取り除くことを忘れないでください。

関連する問題