If you have made extensive changes to a file-visiting buffer and then change your mind, you can revert the changes and go back to the saved version of the file. To do this, type C-x x g. Since reverting unintentionally could lose a lot of work, Emacs asks for confirmation first if the buffer is modified.
revert-buffer command tries to position point in such a
way that, if the file was edited only slightly, you will be at
approximately the same part of the text as before. But if you have
made major changes, point may end up in a totally different location.
Reverting marks the buffer as not modified. However, it adds the reverted changes as a single modification to the buffer’s undo history (see Undo). Thus, after reverting, you can type C-/ or its aliases to bring the reverted changes back, if you happen to change your mind.
To revert a buffer more conservatively, you can use the command
revert-buffer-with-fine-grain. This command acts like
revert-buffer, but it tries to be as non-destructive as
possible, making an effort to preserve all markers, properties and
overlays in the buffer. Since reverting this way can be very slow
when you have made a large number of changes, you can modify the
specify a maximum amount of seconds that replacing the buffer
contents this way should take. Note that it is not ensured that the
whole execution of
revert-buffer-with-fine-grain won’t take
longer than this.
Some kinds of buffers that are not associated with files, such as
Dired buffers, can also be reverted. For them, reverting means
recalculating their contents. Buffers created explicitly with
C-x b cannot be reverted;
revert-buffer reports an error
if you try.
When you edit a file that changes automatically and frequently—for
example, a log of output from a process that continues to run—it may
be useful for Emacs to revert the file without querying you. To
request this behavior, set the variable
a list of regular expressions. When a file name matches one of these
revert it automatically if it has changed—provided the buffer itself
is not modified. (If you have edited the text, it would be wrong to
discard your changes.)
The C-x x g keystroke is bound to the
revert-buffer-quick command. This is like the
revert-buffer command, but prompts less. Unlike
revert-buffer, it will not prompt if the current buffer visits
a file, and the buffer is not modified. It also respects the
revert-buffer-quick-short-answers user option. If this option
nil, use a shorter y/n query instead of a longer
You can also tell Emacs to revert buffers automatically when their visited files change on disk; see Auto Revert: Keeping buffers automatically up-to-date.