Git для бэкапа бинарных файлов?

Хочу посоветоваться по вопросу бэкапа бинарных фалов на основе git.

Исходные данные

  • Имеются папки по годам (например 2001, 2002, 2003 и тд)
  • Размер папки около 3,5Гб каждая
  • Количество файлов в каждой папке около 14000
  • Файлы в основном бинарные
Требуется

  • По окончанию года делать бэкап(коммит) папки года
  • Делать бэкап(коммит) изменений в папках за другие года если они произошли
  • Контроль изменений в файле не интересует. Интересует контроль изменения файла в целом.
Человечьим языком:

Работаю в папке "2013", но иногда приходится заглядывать в папки 2012 и 2011 в результате чего и там могут произойти изменения.
Год подходит к концу и мне нужно забэкапить папку 2013 как самостоятельную. И так же забэкапить изменения в папках 2012 2011 (например как current).

Как это можно организовать в git? Через создание веток?! Как делать чистые ветки только с текущим годом?!
  • Вопрос задан
  • 7726 просмотров
Решения вопроса 1
@kaasius

По шагам.

1. Делаете чистый репозиторий

2. Делаете ветки для старых годов (git checkout -b 2011)

3. Сохраняете там прежние годы (git add -A && git commit)

4. Возвращаетесь в ветку master (она остается пустой)

5. Делаете следующую ветку (git checkout -b 2012)

6. Повторяем пункт 3

Алсо, во избежание, можно сразу сделать веточку empty, чтобы случайный мердж в master не заставил вас потом делать откаты.

То есть для нового года делаете новую чистую ветку, при этом можно безнаказанно работать в предыдущих годах.

Ответ написан
Пригласить эксперта
Ответы на вопрос 6
int03e
@int03e

Очень странное решение, использовать git для этого. Во первых, он сохраняет каждую версию файла в истории, так что приготовьтесь при коммитах к разрастанию папки .git. Во вторых, насколько я помню, он не сохраняет связанную с файлами метаинформацию. Посмотрите другие решения, которые именно для бекапа и предназначены.

Ответ написан
Комментировать

Нужно завести для каждого года отдельный репозиторий. То есть начинается новый год, вы создаете репозиторий 2014 и работаете в нем.

mkdir 2014
cd 2014
git init
…
git add .
git commit

При этом ничто не мешает вам работать в репозиториях для прошлых годов и делать там коммиты.

Если нужно сделать копию на другую машину. То клонируем на ней ваши репозитории. Или просто переносим их простым копированием.

Но, если честно, вы придумали очень странное применение Git. Проблема даже не в том, что вы работаете с бинарными файлами, а в том что вы хотите делать коммит раз в год. Это очень очень очень редко.

Ответ написан
Santiago26
@Santiago26

Посмотрите в сторону тегов. Вы можете держать файлы так, как вам удобно, но каждый год - тегировать ревизии номером года. Так в папке 2012 все файлы будут с тегом 2012 и вы их сможете найти по тегу. Если в 2013-ом году вы изменяли файл из папки 2012, то у этого файла будет версия с тегом 2012 и с тегом 2013. И так далее.
Возможно, это стоит совместить с решением kaasius. Также верно, что использование git для бинарных файлов - это нецелевое использование.

Ответ написан
Комментировать
@Salt_Of_The_Flame

вообще-то класть бинарники в систему контроля версий, имхо, очень плохая идея. может стоило бы поиграть с git submodule. суть: цеплять ссылку к ревизии

Ответ написан
zunkree
@zunkree

Посмотрите http://zbackup.org/.

Ответ написан
Комментировать
@DrunkenMaster

Как уже сказали, git это не лучшее решение для бекапа или управления бинарными файлами.

Но есть проекты, которые возможно будут вам интересны: git-fat, git-annex, git-media.

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы