web-dev-qa-db-ja.com

Mercurial:変更を元に戻す方法は?

Mercurialを使用する場合、最後のコミット以降の作業ディレクトリ内のすべての変更を元に戻すにはどうすればよいですか?これは簡単なことのように思えますが、私は逃げています。

たとえば、4つのコミットがあるとします。次に、コードにいくつかの変更を加えます。次に、変更が悪いと判断し、最後のコミットでコードの状態に戻りたいだけです。だから、私はすべきだと思う:

hg update 4

4は私の最新のコミットのリビジョン番号です。ただし、Mercurialは作業ディレクトリ内のファイルを変更しません。何故なの?

58
Johnny Beegood

hg revert はトリックを行います。

最後のコミットに戻ります。

--allはすべてのファイルを元に戻します。

マニュアルページの説明については、リンクを参照してください。

hg updateは通常、異なるレポジトリまたはスワップブランチからプルした後、作業ディレクトリを更新するために使用されます。 hg up myawesomebranch。特定のバージョンに戻すためにも使用できます。 hg up -r 12

86
Paul Nathan

hg revertの代替ソリューションはhg update -Cです。この単一のコマンドを使用して、ローカルの変更を破棄し、あるリビジョンに更新できます。

hg up -Cより短いので、通常hg revert --all --no-backupと入力することを好みます:)

18

hg revert あなたの友だちです:

hg revert --all 

hg updateは、現在の作業コピーへの変更をターゲットリビジョンにマージします。最新のリビジョンと変更されたファイル(=現在の作業コピー)をマージすると、すでに持っているものと同じ変更が行われます。つまり、何もしません:-)

Mercurialを読みたい場合は、非常に素晴らしいチュートリアル Hg Init をお勧めします。

6
pableu
hg revert --all 

その後

hg pull -u 

私のために働く

1