Вопрос

Какой предпочтительный способ настройки при использовании подмодулей git?Должен ли я..

  • разветвляйте проект и отслеживайте разветвление
  • попытка переопределить поведение по умолчанию
  • внесите изменения локально

Если ни одно из этих слов не имеет смысла, тогда что имеет?

Это было полезно?

Решение

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

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

Это может быть сложнее, если проекты, которые вы хотите включить, находятся где-то в другом месте (или основаны на svn, mercurial и т.д.).Один из способов - разветвить проекты локально, а затем настроить cron-задания для отправки любых входящих изменений на github.То есть создайте зеркала github.Чтобы иметь полный контроль как над объединением, так и над обновлением, вам, возможно, придется разветвить эти зеркала и включить эти разветвления в качестве подмодулей в свой проект, проверяя локальные настройки и перенося их в разветвление зеркала.

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

Обезьянье исправление (альтернатива № 2 в вашем списке) должно быть оставленной альтернативой для ситуаций, когда вы не хотите, чтобы проект становился зависимым от того, что вы поддерживаете настроенный форк в актуальном состоянии с изменениями, происходящими выше по потоку.

Другие советы

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

Идея поддерева git заключается в том, что вы импорт перенесите содержимое подпроекта в свой собственный проект, так что вы разветвляете все сразу и делаете новые коммиты так, как вам нравится.Затем, когда вы будете готовы (если когда-нибудь будете), вы можете использовать git subtree split извлечь историю подпроекта и отправить ее вверх по течению.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top