git でブランチを切り替えるときに、Emacs で未変更のバッファをすべて元に戻すにはどうすればよいですか?
質問
多くの場合、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:
私は magit を 1 年間使用してきましたが、emacs 内から git を扱うにはこれを強くお勧めします。ただし、私は emacs の外でリベースを行うときは常に revbuffs を使用します。
解決
試してみてください Revbufs パッケージ:
revbufs.el
これは小さな Emacs パッケージで、ファイルが Emacs 内と外部ツール (例: ジョムツール)...
他のヒント
おそらくあなたは、グローバル自動復帰モードをしたいと思います。 global-auto-revert-mode
を実行してみて、あなたがそれを好きならば〜/ .emacsファイルに(global-auto-revert-mode)
を追加することができます。
Magitパッケージはあなたが magit-ionotify-mode
を有効にすると、これを自動的に行う(inotifyをemacsの24.4が必要ですLinuxの場合)。その説明は、あなたがここにのを見つけることができます。