Git как резервная система и система управления версиями

Я хочу использовать Git для резервного копирования моего домашнего диска, но я также хочу использовать его как систему управления версиями для проектов, которые будут храниться на моем домашнем диске.

Как бы я это сделал? Я .gitignore все корневые папки проектов и создают для них новые репозитории?

Edit:

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

Ответы

Ответ 1

I написал сообщение в блоге об этом некоторое время назад:

Системы управления версиями, за исключением, возможно, SourceSafe, отлично подходят для отслеживания кода. Почему это? Потому что они были разработаны для отслеживания кода.

К сожалению, особенности хорошего VCS совершенно разные - и часто совершенно противоположные - функции, которые создают хорошую систему резервного копирования.

Возьмем, к примеру, право собственности на файл. Хороший VCS, по праву, проигнорирует владение файлами: когда я просматриваю код другого пользователя, я должен быть владельцем этого файла, а не то, что изначально создало их. Хорошая система резервного копирования, с другой стороны, сделает все возможное, чтобы сохранить владение файлами: когда я восстанавливаю свои резервные копии, я хочу, чтобы /etc/shaddow принадлежал root и/home/wolever/принадлежал wolever.

НО, если вы действительно этого хотите, посмотрите bup - насколько я могу судить, он делает резервную копию с помощью git "вправо".

Ответ 2

Используйте rsync для резервного копирования. Используйте git для управления версиями.

Ответ 3

Я нашел backintime-gnome (glade/python, отдельный бэкэнд?), чтобы быть хорошим для запланированных инкрементных резервных копий, он работает для ваших ежедневных, еженедельных, ежемесячных и т.д. Затем Git repos для исходных файлов или других критически важные данные будут обманывать его. Я не играл с bachintime-common backend-командами, но все они кажутся python.

Я использую его в Ubuntu: "Имейте в виду, что Back In Time - это просто графический интерфейс. Реальная магия выполняется rsync (делать снимки и восстанавливать), diff (проверять, если что-то изменилось) и cp (make hardlinks )". -http://backintime.le-web.org/documentation/

Ответ 4

Вы действительно хотите использовать rsync для резервного копирования ваших данных. Ознакомьтесь с следующим URL-адресом для получения дополнительной информации о rsync, а также о некоторых примерах резервного копирования данных:

http://www.sanitarium.net/golug/rsync_backups_2010.html

Ответ 5

Есть несколько проектов, которые направлены на решение этой проблемы:

bup, похоже, добился наибольшего прогресса: https://github.com/apenwarr/bup

Но вы также можете искать gibak или coldstorage.

Ответ 6

Это очень похоже на то, что я делаю. У меня есть репозиторий git в моем домашнем каталоге, но я использую его для отслеживания только тех файлов конфигурации, которые я могу редактировать вручную. (Это исключает файлы состояния, хранящиеся в "современных" средах рабочего стола и почти все, что хранится как XML.) Все остальное переходит в .gitignore. Когда-то я решил, что мой каталог "notes" и мой ~/.emacs.d должны войти в свои собственные репозитории, поэтому я создал репозитории git в этих каталогах и игнорировал их основной репозиторий.

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

Ответ 7

В окнах git -extensions, а также gitGui позволяет клонировать репозиторий, что позволит сделать резервную копию без всех файлов в .gitignore.

Затем запустите 7zip, и все готово!