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.