Скажем, у меня есть супер-проект с N субмодулями.Что я создал, следуя этому руководству: Учебник по Git Submodule
Итак, у меня есть публичные репозитории для всех подмодулей плюс публичное репо для супер-проекта, все это на удаленном хосте: machine1/path/to/public/repos.git
.Этим я буду называть свои публичные репозитории.
Теперь пользователь X клонирует супер проект из моего публичного репо и вытягивает все в свой личный репозиторий.Все ссылки в его локальных .git/config
и .gitmodules
указывают на мои публичные репозитории.
Я хочу, чтобы у пользователя X был собственный общедоступный репозиторий, чтобы мы могли использовать описанный здесь распределенный рабочий процесс: Распределенные рабочие процессы Git
Таким образом, пользователь X и я можем помещать наши локальные изменения в наши собственные публичные репозитории, а затем извлекать изменения из общедоступных репозиториев друг друга.Я хочу, чтобы нам обоим не приходилось продвигаться к одним и тем же публичным репо.
Поскольку .gitmodules
в локальном репо X указывает на мои публичные репо, X должен изменить ulr, чтобы они указывали на его публичные репо.Пожалуйста, имейте в виду, что .gitmodules зафиксирован, поэтому мы столкнемся с конфликтом, если X фиксирует и публикует .gitmodules
после изменения его для ссылки на его публичные репозитории, а затем я извлекаю изменения из его публичного репо (мой локальный .gitmodules
будетссылаться на его публичные репозитории вместо моих, что не является желаемым результатом).
Так что, как вы думаете, будет лучшей альтернативой:
- Удалить
.gitmodules
из дерева репозиторияи добавьте его к .gitignore
, чтобы он больше не отслеживался. - Держите
.gitmodules
без обработки.Я не уверен, почему, но это кажется мне плохой идеей. - Использование
git --update-index assume-unchanged .gitmodules
Любой из этих параметров имеет тот недостаток, что .gitmodules
будет уничтоженесли кто-то запускает git clean
или удаляет все неотслеживаемые файлы.
Как я могу сохранить изменения в X's .gitmodules
, чтобы постоянно ссылаться на его собственный публичный репозиторий и не беспокоиться о случайном уничтожении конфигурации или вытягиваниинежелательные изменения?