Like git, git-annex hangs on to every old version of a file (by default), so you can make tags and branches, and can check them out later to look at the old files.
$ git tag 1.0
$ rm -f my_cool_big_file
$ git commit -m deleted
$ git checkout 1.0
$ cat my_cool_big_file
yay! old version still here
Of course, when you git checkout
an old branch, some old versions of
files may not be locally available, and may be stored in some other
repository. You can use git annex get
to get them as usual.