Почему не стоит коммитить папку vendor в Git: полный разбор проблем и лучшие практики Composer
Официальные рекомендации Composer для PHP-разработчиков. Следует ли коммитить зависимости в vendor директорию?

Коммит vendor директории: риски увеличения размера репозитория и дублирования истории зависимостей



Рекомендации по настройке Composer при использовании сторонних пакетов

Общая рекомендация - нет. Каталог поставщика (или любое другое место, где установлены ваши зависимости) следует добавить в .gitignore/svn:ignore/etc.

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

Проблемы при указании зависимостей сторонних пакетов

Хотя может возникнуть соблазн закоммитить всё в какой-либо среде, и это приводит к ряду проблем:

  • Большой размер репозитория VCS и различия при обновлении кода.
  • Дублирование истории всех ваших зависимостей в вашей собственной VCS.
  • При добавлении зависимостей, установленных с помощью git, в репозиторий git они будут отображаться как подмодули. Это проблематично, поскольку они не являются настоящими подмодулями, и вы столкнетесь с проблемами.

Как поступить ри необходимости указания зависимостей сторонних пакетов

Если вы действительно чувствуете, что должны это сделать, у вас есть несколько вариантов:

  1. Ограничьтесь установкой помеченных релизов (без dev-версий), чтобы получать только архивированные установки и избежать проблем с "подмодулями" git.
  2. Используйте --preferred-dist или установите для параметра preferred-install значение dist в вашем конфиге.
  3. Удалите каталог .git для каждой зависимости после установки, тогда вы сможете добавить их в свой git-репозиторий. Вы можете сделать это с помощью rm -rf vendor/**/.git в ZSH или find vendor/ -type d -name ".git" -exec rm -rf {} \; в Bash. Но это означает, что вам придется удалить эти зависимости с диска перед запуском composer update.
  4. Добавьте правило .gitignore (/vendor/**/.git), чтобы игнорировать все папки vendor .git. Этот подход не требует удаления зависимостей с диска перед запуском composer update.

Перевод с английского официальной документации Composer:
https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню