По шагам.
1. Делаете чистый репозиторий
2. Делаете ветки для старых годов (git checkout -b 2011)
3. Сохраняете там прежние годы (git add -A && git commit)
4. Возвращаетесь в ветку master (она остается пустой)
5. Делаете следующую ветку (git checkout -b 2012)
6. Повторяем пункт 3
Алсо, во избежание, можно сразу сделать веточку empty, чтобы случайный мердж в master не заставил вас потом делать откаты.
То есть для нового года делаете новую чистую ветку, при этом можно безнаказанно работать в предыдущих годах.
Очень странное решение, использовать git для этого. Во первых, он сохраняет каждую версию файла в истории, так что приготовьтесь при коммитах к разрастанию папки .git. Во вторых, насколько я помню, он не сохраняет связанную с файлами метаинформацию. Посмотрите другие решения, которые именно для бекапа и предназначены.
Нужно завести для каждого года отдельный репозиторий. То есть начинается новый год, вы создаете репозиторий 2014 и работаете в нем.
mkdir 2014
cd 2014
git init
…
git add .
git commit
При этом ничто не мешает вам работать в репозиториях для прошлых годов и делать там коммиты.
Если нужно сделать копию на другую машину. То клонируем на ней ваши репозитории. Или просто переносим их простым копированием.
Но, если честно, вы придумали очень странное применение Git. Проблема даже не в том, что вы работаете с бинарными файлами, а в том что вы хотите делать коммит раз в год. Это очень очень очень редко.
Посмотрите в сторону тегов. Вы можете держать файлы так, как вам удобно, но каждый год - тегировать ревизии номером года. Так в папке 2012 все файлы будут с тегом 2012 и вы их сможете найти по тегу. Если в 2013-ом году вы изменяли файл из папки 2012, то у этого файла будет версия с тегом 2012 и с тегом 2013. И так далее.
Возможно, это стоит совместить с решением kaasius. Также верно, что использование git для бинарных файлов - это нецелевое использование.
вообще-то класть бинарники в систему контроля версий, имхо, очень плохая идея. может стоило бы поиграть с git submodule. суть: цеплять ссылку к ревизии