[解決済み] Mercurial undo 最後のコミット
質問
Mercurial で最後に誤ってコミットした (プッシュしていない) 変更を元に戻すにはどうすればよいですか?
可能であれば、TortoiseHgでそれを行う方法が望ましいです。
更新
私の具体的なケースでは、チェンジセットをコミットしました(プッシュはしていません)。その後、私はサーバーからプルして更新しました。これらの新しい更新で、私は、私の最後のコミットが古く、それを同期させたくないと判断しました。そのため、どうやら
hg rollback
は私が探しているものではありません。なぜなら、それは私のコミットではなくプルをロールバックするからです。
どのように解決するのですか?
一つの方法として
(2013年8月、Hg2.7より非推奨)
hg rollback
を使用してください。
hg commit --amend
の代わりにrollback
に変更し、前回のコミットでの間違いを修正しました。リポジトリ内の最後のトランザクションをロールバックします。
いつ コミット または マージ を追加すると、Mercurial は チェンジセット のエントリを最後に追加します。
Mercurial はトランザクションの前に、タッチされた各ファイルの名前とその長さのトランザクションログを保持します。中止の際には、各ファイルはその前の長さに切り詰められます。このシンプルさは revlogs をアペンドのみにすることの利点の 1 つです。トランザクションジャーナルでは、アンドゥの操作も可能です。
参照 TortoiseHg回復の項 :
このスレッド
との違いについても詳しく説明しています。
hg rollback
と
hg strip
:
(文責
マーティン・ガイズラー
SOでも貢献しています)
-
'
hg rollback
' は最後のトランザクションを削除します。トランザクションは、データベースでよく見られる概念です。Mercurial では、コミット、プッシュ、プル...など、特定の操作が行われたときにトランザクションを開始します。
操作が成功裏に終わると、トランザクションは完了とマークされます。エラーが発生した場合は、トランザクションは "rollback" され、リポジトリは以前と同じ状態になります。
hg rollback' で手動でロールバックを起動することができます。これは最後のトランザクションコマンドを元に戻すことになります。pull コマンドが異なるブランチのリポジトリに10個の新しいチェンジセットを持ち込んだ場合、'hg rollback
を実行すると、それらすべてが削除されます。 注意してください: バックアップはありません。 はありません! -
'
hg strip
' はチェンジセットとそのすべての子孫を削除します。その チェンジセットはバンドルとして保存され、必要なときに再び適用できます。 として保存されます。
フォーエバーウィンター がコメントで示唆している(5年後の2016年)。
最初にファイルを hg forget することで「コミットを解除」することができます、例.
hg forget filea; hg commit --amend
しかし、これは直感的でないように思われます。
hg strip --keep
は、おそらく現代の hg にとってはより良い解決策でしょう。
関連
-
[解決済み] Hg支店の閉鎖
-
[解決済み] MercurialとGitの違いは何ですか?
-
[解決済み] Mercurialが "waiting for lock "で動かなくなった
-
[解決済み】Mercurialでユーザー名とパスワードを保存する方法は?
-
[解決済み] [Solved] Mercurialで作業ディレクトリから未追跡のファイルをすべて削除するには?
-
[解決済み】マーキュリアル。ブランチの名前を変更できますか?
-
[解決済み】Mercurial:最後のコミットを修正する方法は?
-
[解決済み] すべて破棄して、最新リビジョンのクリーンコピーを取得しますか?
-
[解決済み] hgのマージを中止するには?
-
[解決済み] Mercurialで閉じたブランチを再開することは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SourceTreeで強制プッシュ
-
[解決済み] Hg支店の閉鎖
-
[解決済み] Mercurialが "waiting for lock "で動かなくなった
-
[解決済み】TortoiseHGでブランチする方法
-
[解決済み] [Solved] Mercurialで作業ディレクトリから未追跡のファイルをすべて削除するには?
-
[解決済み】マーキュリアル。ブランチの名前を変更できますか?
-
[解決済み] hgのマージを中止するには?
-
[解決済み] hgでタグ/ブランチに切り替えるにはどうしたらいいですか?
-
[解決済み] Mercurialで閉じたブランチを再開することは可能ですか?
-
[解決済み] Mercurialでコードの作者を探す