2013-06-16 14 views
52

質問は、Emacs機能のためのMagitメジャーモードについてですが、コマンドラインインターフェース経由でこれを行う方法はそれほどです。Magit revert single file

私はローカルのGitリポジトリのみを持っています。選択したファイルを以前のバージョンに復元するにはどうすればよいですか?私はGitコマンドがgit checkout HEAD^ path/to/fileのようなものでなければならないと信じていますが、ここでも間違っているかもしれません。

私が探しているものは、C-x v uvc-dirバッファと本質的に同じものです。

基本的に、私は何を期待していたことだった。

  • が変更されたファイルを削除します。

  • pull from local repo。

しかしMagitがあることを行うことができるようには見えない、代わりにそれを復元するの、単にファイルを削除することを好むようです。

+0

(1)Magit履歴バッファは間違いなくこれをサポートしていますが(私は覚えていませんが)他の手段が必要ですか(例えば '* magit-status *')? (2)ベースに戻したいだけなら、なぜ 'vc'マイナモード' C-x v u'を使わないのでしょうか? – lukstafi

+0

コミットされていない変更(つまり、現在コミットされているバージョンに戻す)を破棄したり、以前のコミットに戻ったりすることについて話していますか? 'git checkout HEAD file'はコミットされていない変更を破棄します。 'git checkout HEAD^file'は、リポジトリへの最新のコミットでファイルに加えられた変更を(もしあれば)元に戻します。そのコミットに問題のファイルが含まれていなかった場合、 '^'は効果的に冗長です。あなたの "削除とプル"要約を見て、コミットされていない変更を破棄したい場合、レミーの答えはあなたが望むものです。 – phils

答えて

66

magitでは、元に戻したいファイルやファイルに移動し、kを使用して変更を破棄するだけです。詳細は関連文書https://magit.vc/manual/1.4/magit/Staging-and-Committing.htmlを参照してください。

+1

アクションは、使用する場所によって異なります。ファイルがgitによって追跡されない場合、ファイルを削除します。しかし、ファイルが追跡されている場合は、変更を破棄します。ファイルがgitに入ったら、履歴から完全に削除するのは難しいことに注意してください。 –

+2

私はかなり合理的に、 'commit'の後で逆に使うこともできると思います:ファイルを他の変更と一緒にコミットした場合、' v'で 'revert'を行い、次に' k'で逆の変更を行います変更を保存する。 – lukstafi

12

ファイルを開くと、M-x magit-file-checkoutとなります。

+0

emacs/magitのどのバージョン? –

+0

Magit 2.3.0以降で利用可能です。 –

+2

'magit-checkout-file'は非推奨です。代わりに' magit-file-checkout'を使用してください。 – xged