Like any editor, Vim keeps track of every operation. Press u to undo a last operation, and Ctrl + r to redo it.
Vim also allows you to persist undo history between sessions, which is great if you want to undo (or remember) something you've done a few days ago!
You can enable persistent undo by adding the following line to your .vimrc:
set undofile
However, this will litter your system with an undo file for each file you're editing. You can consolidate the undo files in a single directory, as seen in the following example:
" Set up persistent undo across all files.
set undofile
if !isdirectory(expand("$HOME/.vim/undodir"))
call mkdir(expand("$HOME/.vim/undodir"), "p")
endif
set undodir=$HOME/.vim/undodir
Now, you'll be able to undo and redo your changes across sessions.