私はマージを間違えました。元に戻してからもう一度やり直したいのですが。
コミットされる前にマージを元に戻す方法はありますか?
hg revert
私が望むことをしません、それはファイルのテキストを元に戻すだけです。Mercurialは、マージの2回目の試行を中止し、元のマージがまだコミットされていないことを訴えます。
hg merge
コマンドの後、コミットされる前にマージを元に戻す方法はありますか?
回答:
hg update -C <one of the two merge changesets>
--clean
はの同義語です-C
。どのチェンジセット.
が参照するかはわかりませんが、常に2つのマージされたチェンジセットの1つになります。
.
は、マージを開始する前に行っていたリビジョンまでクリーニングする必要があります。したがって、r42にいて、r43とのマージを試み、失敗し、クリーンアップした場合は、元のr42に戻ります。
.
マージのコンテキストでの意味はかなりあいまいです。
実行後、実行hg merge
前hg commit
に、作業コピーには2つの親があります。最初の親はマージ前に更新した変更セットであり、2番目の親はマージする変更セットです。Mercurialはhg merge
、作業コピーに2人の親がいる限り、再度実行することはできません。
続行する方法には2つのオプションがあります。
マージを中止して開始した場所に戻りたい場合は、
hg update -C .
これにより、作業コピーが最初の親と一致するように更新され.
ます。常に、作業コピーの最初の親を示します。
一部のファイルを再マージする場合は、
hg resolve fileA fileB
これにより、以前と同じようにマージツールが再起動しますhg merge
。hg merge
マージツールが正しく構成されていないことが判明した場合は、resolveコマンドが適していますhg resolve --all
。構成を修正して実行します。hg resolve
マージに満足するまで、何度でも実行できます。