Использование проекта в Git-репо в другом проекте - PullRequest
2 голосов
/ 21 февраля 2011

У меня есть структура, которую я создаю, чтобы упростить некоторые общие функции (подключение к базе данных), и я хотел бы использовать ее в другом проекте.Я всегда мог просто скопировать и вставить это, но я работаю над этим и постоянно расширяю его.Было бы намного проще просто скопировать обновленную самость всякий раз, когда я делаю коммит в своем репозитории Git.

Могу ли я использовать Git для автоматического обновления фреймворка в моем другом проекте, или мне придется искать другой?решение?

Ответы [ 2 ]

5 голосов
/ 21 февраля 2011

Используйте либо поддеревья git, либо подмодули git.

В прошлый раз, когда я проверял, у подмодулей были некоторые серьезные проблемы (но я слышал, что они были немного улучшены в последних версиях).Подробности см. Здесь: Рабочий процесс подмодулей Git

Вкратце:

Поддеревья являются обычными ветвями Git , объединенными со специальнымистратегия слияния, которая помещает все свои файлы в подкаталог рабочей копии репозитория хоста.Помимо стратегии слияния (которая имеет значение только при создании коммита слияния), Git "поддерево" является совершенно нормальной веткой Git.

Плюсы:

  • Никакой дополнительной поддержки инструментов не требуется,за исключением случаев, когда вам нужно извлечь новые изменения из поддерева, и даже тогда вся поддержка - это опция -s subtree командной строки (полный рабочий процесс см. здесь ).Вы должны помнить о поддереве, только когда вы выполняете извлечение поддерева.

Минусы:

  • Все коммиты поддерева видны в истории основного проекта.
  • Не вносить изменения в каталог репозитория хоста, в котором поддерево живет, или сталкиваться с конфликтами при следующем извлечении поддерева.

Подмодули являются Git хранилища внутри репозитория хоста.

Плюсы:

  • Более чистая история, лучшее отделение от репозитория хоста.
  • Можно напрямую связываться с субмодулем от репозитория субмодуля.напрямую (или я так думаю).

Минусы:

  • Для каждой (или многих) команды Git вы помните, что имеете дело с репозиторием с подмодулями, лотаминеприятных угловых дел (или так было, когда я смотрел).Требуется поддержка специального инструмента для работы с каждым клоном репозитория.

Отказ от ответственности: я склонен к подмодулям.Попробуйте сами убедиться, какой подход лучше подходит для вашего рабочего процесса.

1 голос
/ 21 февраля 2011

git-submodules.

У вас будет несколько проблем с обновлением в разных местах, но это должно сработать.

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