9

誤って大量のファイルをローカルにコミットしましたが、プッシュしませんでした。したがって、基本的に私がやりたいことは、これを私のコミットから削除してから、他の変更をプッシュすることです。

バックアウトによってコミットを削除できます。次に、ローカルでコミットする必要があるため、実際にはローカルで削除されます。

私の質問は次のとおりです。プッシュを行った場合、偶発的なコミットとそれに対応する復帰ログは公開されますか?

4

3 に答える 3

17

hg rollbackそれはあなたが望むコマンドのように聞こえます。

hg backout <REV>で行われた変更を元に戻す新しいコミットを作成し<REV>ます。元のコミットとバックアウトコミットの両方が履歴に残ります。これは、パブリックな場所にプッシュした後に不正なコミットを修正する必要がある数少ないオプションの1つです。

ただし、この場合はまだ公開されていないため、より良い解決策があります。

悪いコミットが最後に行われたコミット(つまりチップ)である場合は、 ( TortoiseHghg rollbackのメニューの下で)使用できます。Repositoryこのコマンドは、コミットの「元に戻す」のようなものです。

不正なコミットが履歴の他の場所にある場合(ただし、まだパブリックリポジトリにプッシュされていない場合)、mq拡張機能を使用して履歴のその部分を書き換えることもできます。

于 2012-09-11T17:17:25.130 に答える
3

hg strip -r . --keepの代わりに使用できますhg rollbackhg backoutコミットをプッシュした場合にのみ必要です。

于 2014-10-28T18:15:11.193 に答える