1

У меня есть много файлов в моем домашнем каталоге под контролем версий git.

Мои настройки emacs, исходные файлы zsh, кандидатская диссертация и т.д.

Все это в одном огромном git-репо в корне домашнего каталога. (Конечно, сами файлы находятся во многих разных каталогах.)

Я рассматриваю возможность использования filter-branch для разделения репо, чтобы мои тезисные коммиты не были загрязнены моими .emacs и т.д.

Вообще это хорошая идея? Я не хочу терять историю.

Придется ли мне копировать мой файл .gitconfig в каждую директорию, которая получает репо?

И, если я случайно git add foo.txt в каталог перед git init , будет ли он размещен в первом репозитории, когда git находит, как он перемещается по моему дереву каталогов? Или это можно предотвратить?

1 ответ1

0

Если вы хотите разделить свой репозиторий на несколько новых, вы не сможете использовать filter-branch , поскольку это в основном мощный rebase который работает внутри одного репозитория.

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

Я бы определенно избегал создавать Git-репозиторий где-либо в рабочем каталоге, то есть делать git init в каталоге, который уже имеет версии в Git. Хотя это было бы возможно, это потребовало бы особой осторожности с параметрами --git-dir и / или --work-tree . Вместо этого переместите каталог $HOME/.git в какой-то другой каталог, который не будет иметь версий, прежде чем создавать несколько репозиториев в разных каталогах .

Файл .gitconfig - это ваш файл конфигурации Git для каждого пользователя. По умолчанию он живет в вашем $HOME . Поскольку ваш домашний каталог является вашим рабочим каталогом, вы, вероятно, думали, что вам нужен один такой файл в каждом рабочем каталоге, но это не так. Конфигурационный файл для каждого репозитория - .git/config .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .