私は誤ってコミットの代わりに "hg commit --amend"をしました。修正の前にコミットをロールバックするにはどうすればよいですか?Mercurial: "hg commit --amend"をロールバックします。
答えて
注:この回答は廃止されました。 @ソリナ・サンダウのthe answerを参照してください。
は、それが言うhg help commit
を参照してください。
--amendフラグは新しいでの作業 ディレクトリの親を修正するために使用することができるが、 で親の変更が含まれていますコミット現在「hg status」によって報告されているものに加えて、存在する場合は追加します。 古いコミットは、バックアップバンドル ".hg/strip-backup"に保存されます( 「hgヘルプバンドル」および復元方法については、「hg help unbundle」を参照)。
あなたはhg reflog
とhg reset <hash>
(journal extensionから)を使用することができます。
hg reset <old-hash>
コミットが以前いたものに戻されますと:それは、あなたが元に戻したい改正だけで使用している場合
<old-hash> -> <new-hash> <user> <timestamp> commit --amend <some-path>
:
hg reflog -v
のようなものを与える必要があります修正された変更はコミットされていない変更(hg status
とhg diff
を使用してチェック)になります。
これは正解です。 mercurialはreflogをサポートしており、 –
をリセットします。これは水銀でちょうど完全に –
@ JacobKrallで動作します。これはMercurialで完璧に動作します。 – zzy
- 今、あなたは二つのヘッドが必要
.hg/strip-backup
ディレクトリ hg unbundle <latest backup>
- の最新保存したバックアップを探す - 古いは改正前にコミット、二一から二のコミット(最初のものとコミット改正、他の1と1を"古いコミットハッシュのための一時的な修正コミット"。
histedit
の拡張子を持っていれば、それを変更するためにhg histedit
を実行することができます(例えば、コミットの直前の状態を達成するためにedit
を選択します。を使用するとすべての変更が表示されます)。
古いヘッドを取り除くことを忘れないでください。
- 1. Mercurial: "hg commit"の前に "hg pull -u"を実行する
- 2. "hg commit" - 何も起こりません!
- 3. Mercurial/Hgのファイルをチェック
- 4. `git commit --amend`に相当するバザーはありますか?
- 5. Mercurial strange hg init issue
- 6. Mercurial(hg)は特定のファイルのみをコミットします
- 7. hg commitはFogbugzに通知するはずですか?
- 8. 'git commit --amend'の後にrepoに移動する方法
- 9. Mercurial HG Serve HTTP 500エラー
- 10. ローカルリポジトリ用Node.jsのMercurial HGライブラリ
- 11. サーバー間でのMercurial hgクローン
- 12. Mercurial hgリモートのhgエラーからの適切な応答なし
- 13. Mercurialは(HG)(--mixedまたは--soft)
- 14. .hgなしのMercurialリポジトリのクローニング
- 15. Mercurial: "hg diff"ファイルをリストする
- 16. Mercurial hgは複数のリポジトリを提供します
- 17. hg pullを組み合わせるMercurialコマンド。 hg up
- 18. TFSの履歴をMercurial(hg)にインポート
- 19. GitHub for Macを使って "git commit --amend"を実行する方法
- 20. Mercurialで複数のコミット(公開前に公開)をロールバックする
- 21. Windowsの圧縮フォルダはMercurial repoフォルダ.hgを避けます
- 22. Mercurial(hg)プロセスを強制終了できますか?
- 23. 水銀「hg commit」を使ってメモ帳で作業する++
- 24. Mercurial Commit(TortoiseHG)のファイルを無視できません
- 25. Mercurial/Hgコミットメッセージの先頭に現在のブランチディレクトリがあります
- 26. Mercurialでマージするときに存在しないファイルを無視します。
- 27. Mercurial(hg)リポジトリの一部を別のリポジトリにコピーしています
- 28. SVNからHGへ:HGチェンジセットからSVNリビジョン番号を出力しました
- 29. Mercurialフック - フック間の情報を渡しますか?
- 30. HG着信表示Mercurialのコマンドを実行するリポジトリのルートパス
実際にunamendedコミットに到達するために、アンバンドル後にどの手順を実行する必要があるかを説明して、この回答を改善してください。 – akuhn
@akuhn、私はそれが 'hg merge'と' hg commit -m 'message_for_the_last_commit''だと思っていますが、歴史をちょっと乱してしまいます。 – oblalex
一般的に言えば、新しくアンバンドルされた 'tip'コミット自体を'修正 'するだけで、意味のあるエラーメッセージを与えることができます。そうすれば、@oblalexが提案して 'merge'します。多くの場合、新しいヒントで使用されたメッセージとして、前のヒントのコミットメッセージ( 'hg unbundle 'によって残されています)が必要になります。 –