多くの場合、git でブランチを切り替えると、ファイルが emacs で開かれている場合、内容が同一であっても、emacs はそれらを元に戻すかどうかを尋ねます (ディスク上で変更されたと見なされるため)。
まず、ディスク上の内容がバッファ内の内容と同一である場合に、emacs がそれについてまったく尋ねないようにする方法を見つけたいと思います。
次に、保存されていない変更がないすべての開いているバッファを (クエリなしで) 元に戻し、保存されていない変更があるバッファについてクエリを実行するコマンドが必要です。
あるいは、私が試すことができる他のソリューション、作業方法などについての提案を受け入れます。emacs-lisp を書いて、どこから始めればよいか教えていただければ、とてもうれしいです。
PSそれが重要な場合、私はOSXでAquamacsを使用しています。
編集:
まあ、revbuffs パッケージが必要なものであることがわかりました。確かに、自分で何か新しいものを書き込もうとするのを止めるのに十分です. (revbuff を Cmd-R にマッピングしました。これは非常にうまく機能します。他の Mac アプリの Cmd-R に似ています)。
global-auto-revert モードはまったく問題のない解決策であり、2 つの答えを選択できればよかったのにと思います。私がリバフを好むのは、単に何が起こるかをコントロールしたいという、おそらく不合理な感覚のためです。
emacs 内から git にアクセスすれば、おそらくより簡単に処理できると思いますが、現在はコマンドラインから git にアクセスすることを好みます。(私は自分のオペレーティングシステムにするのに十分長い間 emacs を使っていません)。私はmagitをもう少し徹底的に調査します。
編集2:
私は 1 年間 magit を使用しており、emacs 内から git を処理する場合に強くお勧めできます。ただし、emacs の外でリベースを行うときは常に revbuff を使用します。