Часто, когда я переключаю ветки в git, если файлы открыты в emacs, emacs спрашивает, хочу ли я их вернуть (поскольку он считает, что они были изменены на диске), даже если содержимое идентично.
Во-первых, я хотел бы найти способ, чтобы emacs не спрашивал меня об этом вообще, если содержимое на диске идентично содержимому в буфере.
Во-вторых, мне нужна команда, которая вернула (без запроса) все мои открытые буферы, у которых не было несохраненных изменений, и запросил меня о тех, у которых есть несохраненные изменения.
В качестве альтернативы, я был бы открыт для предложений о других решениях, способах работы и т.д. Я мог бы попробовать. Я довольно счастлив писать emacs- lisp, если люди могут дать мне указания о том, с чего начать.
PS Я использую Aquamacs на OSX, если это имеет значение.
Edit:
Что ж, я нашел пакет revbuffs в значительной степени тем, что мне нужно. Конечно, достаточно, чтобы остановить меня, желая попробовать написать что-нибудь новое. (Я сопоставил revbuffs с Cmd-R, который работает довольно хорошо. Вид похож на Cmd-R в других приложениях Mac).
Режим Global-auto-revert был бы идеальным решением, и я хотел бы выбрать два ответа. Я предпочитаю обрезки просто из-за, возможно, иррационального чувства желания контролировать то, что происходит.
Я бы догадался, что если бы я получил доступ к git из emacs, то, скорее всего, его можно было бы обработать проще, но в настоящее время я предпочитаю доступ к git через командную строку. (Я не достаточно давно использовал emacs, чтобы сделать его своей операционной системой). Я исследую магит немного более тщательно, хотя.
Edit2:
Я использую magit уже год и могу очень рекомендовать его для работы с git из emacs. Однако я все еще использую revbuffs, когда я делаю rebase вне emacs.