2009-03-20 3 views
52

gitでブランチを切り替えると、ファイルがemacsで開いていると、emacsは内容が同じであってもそれらを元に戻すかどうかを尋ねます。gitでブランチを切り替えるときに、変更されていないバッファをすべて元に戻すにはどうすればよいですか?

まず、ディスク上の内容がバッファ内の内容と同じであれば、emacsが私にそれについて何も質問しない方法を見つけたいと思います。

第2に、保存されていない変更がないすべての開いているバッファを元に戻し、変更を保存していないバッファについて私に問い合わせるコマンドが必要です。

また、私は他の解決法や働き方などについて提案してもらえます。私はemacs-lispを書いているとかなりうれしく思っています。

PS私はOSXでAquamacsを使用しています。

編集:

まあ、私はかなり私が必要なものをすべきrevbuffsパッケージを見つけました。確かに私は自分自身で何か新しいことを試してみたいと思っているのです。 (私はCmd-Rにrevbuffsをマップしていますが、これは他のMacアプリケーションではCmd-Rに似ています)。

グローバル自動復帰モードは完全に良い解決策でしたが、私は2つの答えを選ぶことができました。私は、何が起こるのかをコントロールしたいと思うという、おそらく非合理的な気持ちのために簡単に改革を好む。

私はemacsからgitにアクセスすると、扱いやすくなると思っていましたが、現在はコマンドラインからgitにアクセスすることをお勧めします。 (私は非常に私のオペレーティングシステムにするために十分な長さのemacsを使用していない)。私はもう少し徹底的に魔法を調べます。

EDIT2:

私は今年magitを使用してきたし、非常にemacsの中からのgitを扱うためにそれをお勧めすることができます。しかし私はemacsの外でrebaseを行うたびにrevbuffsを使います。

+1

私は、これは古代のですけど、私はSingletonedの推論を好きで、githubのhttps://github.com/capitaomorte/revbufs –

答えて

17

revbufs packageをお試しください:

revbufs.elあなたはEmacsで、外部のツール(例えばJomtoolとして例えば、コードジェネレータ)を経由して、両方の編集中のファイルがある場合、安全にバッファを元に戻し小さなEmacsのパッケージです...

+0

にこれを自動化する方法をrevbufsの小さなフォークを持っていますか?シングルトンは自分の編集で言及しているので、これをキーにバインドする必要があります。 – toolbear

11

Magitパッケージmagit-ionotify-mode(inotifyにはemacs 24.4 on Linuxが必要)を有効にすると自動的にこれを行います。その説明はhereです。

40

おそらく、グローバル自動復元モードが必要です。 global-auto-revert-modeを実行してみてください。好きな場合は、〜/ .emacsファイルに(global-auto-revert-mode)を追加できます。

関連する問題