2つの開発ブランチがあるプロジェクトに自分のブランチがあります(「新しいもの」と「古いもの」と呼ばせてください)Mercurial:ブランチの正確なコピーを取得する
新しいブランチを作成せずに私のブランチを「新しいもの」に正確に見せる方法はありますか?いいえ、私はブランチを作成しません。私は私の変化、そのわずか数行を失う気にしないと、私は再びそれを行うことができます。
2つの開発ブランチがあるプロジェクトに自分のブランチがあります(「新しいもの」と「古いもの」と呼ばせてください)Mercurial:ブランチの正確なコピーを取得する
新しいブランチを作成せずに私のブランチを「新しいもの」に正確に見せる方法はありますか?いいえ、私はブランチを作成しません。私は私の変化、そのわずか数行を失う気にしないと、私は再びそれを行うことができます。
をではなく、すべてを一掃、なぜ正確に一つの悪いマージを一掃しませんか?
Mercurialの許可あなたはにリビジョンを削除します。ただし、そのリビジョンの子孫であるすべてのコミットも削除する必要があります。これは拡張ですが、それはMercurial(2.8以降)のすべての現代版にバンドルされているため、設定の[extensions]
セクションにstrip =
を追加するだけで有効にするだけです。
マージ(マージ)してリビジョンを作成します。あなたは最初にhg merge <correct thing>
を実行してコミットした後、hg merge <incorrect thing>
を実行してコミットしたと言います(私はそうだと思います)。
この場合、最新のリビジョンは間違っているリビジョンです。これにより、マージの下位にあるリビジョンも削除されますが、最後に行ったことがhg merge <incorrect thing> && hg commit
だった場合は、そのようなリビジョンは存在しません。
間違ったリビジョン番号を表示して、hg log
を実行して最後の数リビジョンを表示してからhg strip -r <wrongrev>
を実行してください。それはそのリビジョン(およびそのすべての子孫)を削除します。
https://www.mercurial-scm.org/wiki/StripExtensionとthis answer~Mercurial — revert back to old version and continue from thereも参照してください。
これはプロのサイトです。言語をきれいにして仕事で安全に保ちましょう。 –