2014-01-08 3 views
1

Это может быть довольно наивный вопрос, но я пытаюсь понять разницу в полезности между управлением зависимостями Git's Subtree и Composer для PHP. Я начал использовать Git Subtrees после списания Git Submodules. Но теперь есть Composer (для PHP). Поскольку большинство моих проектов основаны на PHP, я думаю о демпинге Subtrees в пользу Composer.Git Subtrees vs Composer

Например, у меня есть несколько сайтов Wordpress. Я хотел бы вытащить сам Wordpress и плагины, которые я хочу использовать. Я могу добиться этого как с субтитрами Git, так и с композитором, верно?

ЕСЛИ У меня нет прецедента для фиксации/push-кода в подпапке вверх по течению, но нужно только вытащить последнюю или конкретную версию в подпапку, сделать Subtree и Composer одним и тем же видом полезности?

В моем случае использования, я чувствую, что Composer превосходит Git Subtree, будучи более простым в использовании, проще получить другую/более новую версию скрипта в подпапке, не получая эти файлы подпапок, переданные в Git repo ,

Любые мысли об этом моем понимании? Есть ли проблема в такой стратегии? Или оба они совершенно разные и не имеют сходства?

+1

Я бы просто выразил это так: git-поддеревья привязаны к вам, используя git как систему управления версиями. Вы не можете перенести только файлы в другом месте, вам всегда нужно сохранить весь проект как репозиторий git, и вы используете его второстепенные функции для управления зависимостями третьей стороны. С другой стороны, Composer - это инструмент, специально предназначенный для управления зависимостями сторонних разработчиков независимо от любой другой системы. Выбор кажется мне совершенно понятным, но в конце концов это действительно зависит от вас. – deceze

+1

Даже если вам нужно отредактировать код в зависимости, вы можете сделать это, получив его в качестве источника «composer update somedependency --prefer-source». Затем вы можете редактировать код как для проекта, так и для зависимости одновременно, и git обязуется самостоятельно передавать их в соответствующее репо. – Danack

ответ

5

Множество причин пользуется композитором.

Фактически управляет зависимостями от самих проектов и самих библиотек поставщиков. Поэтому, если вам нужен пакет, он получит все необходимые материалы или сообщит вам об ошибках.

Управления версий также тривиальны, так как для каждого пакета, который вы скачать вы можете указать версию, которую необходимо обновлять, чтобы (так что вы можете решить, обновлять только незначительные выбросы пакета или пойти полным с DEV-мастером)

Композитор оказывает некоторую помощь с автозагрузкой. Сделайте ваш проект немного быстрее при запуске с -o

Имея пакеты разработки, также можно установить управление настройками производства.

Я не вижу смысла использовать подмодули, если поставщик предоставляет функциональность композитора.