Git игнорирует каталоги .git в подкаталогах - PullRequest
5 голосов
/ 24 апреля 2010

Я использую git в качестве инструмента резервного копирования и «перемещаемый профиль» для своего каталога $ HOME между ноутбуком и настольным компьютером.

Моя проблема в том, что в моем $ HOME у меня есть каталог Development с несколькими git-проектами, над которыми я работаю. Git не позволит мне добавить в подкаталоги папки .git. Поэтому, чтобы выполнить эти проекты, я должен вставить изменения в мое git-репозиторий $ HOME, взять ноутбук (там, где они были созданы и .git dir exits) и зафиксировать.

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

Кто-нибудь сделал это или есть идеи, как я?

Ответы [ 4 ]

2 голосов
/ 11 мая 2010

Не делай этого. Это плохая идея, потому что вы создаете версионную резервную копию версионного хранилища. Просто создайте резервную копию с помощью rsync (вы все еще можете создать версию для родителя, используя git)

1 голос
/ 13 мая 2010

Я лично использую git для синхронизации некоторых точечных файлов, таких как .profile или .vimrc. Чтобы избежать подобных проблем, мой git находится в $ HOME / dot, а отдельные файлы - в $ HOME.

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

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

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

По крайней мере, попробуйте, это может сработать для вас. Проблема, которую я упомянул, также может быть вызвана Git. Так как я попробовал это 1,5 года назад, это может быть исправлено.

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

Я бы порекомендовал скрипт, который будет сначала создавать резервные копии всех .git проектов, которые есть у вас в вашем $ HOME: он создаст один файл резервной копии (все еще в вашем $ HOME)
Подробнее см. git bundle.

И затем вы можете добавлять / обновлять эти файлы резервных копий (или «связывать») в свое основное git-репо (которое содержит все ваши $HOME, за исключением проектов .git)

Наконец, вы можете экспортировать все ваши $ HOME как один файл с той же техникой резервного копирования Git (git bundle).

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