CVSでは、ローカルの変更が台無しになり、他のファイルに加えられたコミットされていないローカルの変更を保持したまま、そのファイルで最初からやり直したいので、ファイルへのローカルの変更を破棄するために「最新のヘッドから置き換える」ことがあります。 。MercurialとGitで同等の方法を実行するにはどうすればよいですか?
3 に答える
Mercurialの場合は、を使用しますhg revert
。を参照してくださいhg help revert
。
編集
明確にするために、ファイルを以前のリビジョン にhg revert
変更します。親チェンジセットを別のリビジョンに変更します。どちらの場合も、使用されない限り、コミットされていない変更は保持されます。hg update
-C
GITで、まだコミットしていないローカル変更を行った場合は、次のようにします。
git reset --hard
2つのことを行います:1)「インデックス」からのもの(コミットするためにステージングしたもの)と2)作業ディレクトリ内のもの(まだコミットするためにステージングしていないもの)を削除します。'--hard'の他に他のオプションがあるので、' git help reset'でドキュメントを確認してください-しかし、あなたの質問に基づいて、'--hard'がオプションになります。
あなたが単一のファイルを元に戻すことを探しているなら、
git checkout -- /path/to/file
トリックを行います。[いくつかの変更を元に戻す方法を説明している「gitstatus」の出力を参照してください]。
Mercurialの場合:
hg revert fileName
そのファイルを現在のリビジョンに戻します。
これにより、fileName.origファイルが生成されるため、万が一の場合に備えて、元に戻したい変更を保持できます。ファイルを元に戻し、.origファイルがない場合は、次の-C
オプション
を追加できます。hg revert fileName -C