Непростая жизнь в разработке с помощью подмодуля git - PullRequest
5 голосов
/ 30 июня 2011

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

  1. Папка субмодуля должна быть зафиксирована, если содержимое субмодуля зафиксировало изменения.
  2. Настройки ветки не распространяются на подмодули.Мы должны вручную переключать ветки в подмодулях, если работы в ветвях выполняются через подмодули.

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

Есть ли побочный эффект от использования git slave?

Или есть хорошие методы, позволяющие избежать вышеуказанной проблемы в подмодуле git?

1 Ответ

4 голосов
/ 01 июля 2011

Главное, о чем нужно знать, - это вполне заранее описано в разделе «Гитслав не совершенен» :

Менее очевидно, очень слабые отношениямежду коммитами в разных репозиториях .
Вы не можете легко и точно определить, в каком коммите / SHA был любой другой репозиторий, когда был сделан конкретный коммит (хотя вы можете аппроксимировать и предполагать довольно легко).Только теги обеспечивают точную синхронизацию между различными репозиториями.

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

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