Git в качестве резервной копии и системы контроля версий - PullRequest
16 голосов
/ 05 апреля 2010

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

Как бы я поступил так? Могу ли я .gitignore все корневые папки проектов и создавать новые репозитории для них?

Edit:

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

Ответы [ 8 ]

16 голосов
/ 05 апреля 2010

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

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

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

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

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

14 голосов
/ 05 апреля 2010

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

3 голосов
/ 25 января 2011

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

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

2 голосов
/ 25 марта 2011

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

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

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

2 голосов
/ 05 апреля 2010

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

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

0 голосов
/ 17 июля 2018

Отличная идея, я на самом деле использую его ежедневно, и он работает фантастический , пока ваш компьютер не выйдет из строя во время коммита и не испортит репо. В первый раз, когда это произошло, мне потребовался день, чтобы все исправить и восстановить резервные копии, в итоге вы узнали немало о внутренностях git, так что это дополнительное преимущество. Предполагая, что вы работаете в Linux, я рекомендую сделать резервную копию локальной копии .git dir на отдельном диске или чем-то еще, затем git init в / root вашей операционной системы и использовать .gitignore для управления тем, что будет версионно. Некоторые файлы являются «особыми», поэтому вы, вероятно, хотите исключить их по умолчанию, например, в / proc. Вы можете точно наблюдать за тем, что делает различное программное обеспечение для вашей ОС, и откатывать неработающие установки, а также легко отслеживать конфигурацию, журналы и т. Д. Я не знаю, почему все эти высказывания говорят «не делай этого», потому что я сделал это, и это очень практично и очень круто. Как я уже говорил, только обратная сторона - это испорченное репо, когда происходит что-то непредвиденное, но если вы готовитесь к исправлению испорченного коммита, это просто копирование предварительно испорченного .git поверх испорченного.

0 голосов
/ 21 октября 2010

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

Дальше 7zip это и все готово!

0 голосов
/ 05 апреля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...