Во-первых, вы не должны редактировать и/или передавать из репозиториев, которые создаются в каталоге /vendor
(или в том месте, которое вы определили для работы в этом каталоге).
Обычный случай заключается в том, что вы включаете библиотеку от кого-то еще, и у вас не должно быть прав фиксации, кроме внешнего репозитория. Если вы хотите, чтобы изменения были внесены или реализована функция, может быть такой рабочий процесс, как запросы на загрузку, отслеживание проблем и т. Д. Чтобы получить ваше обновление, вы ожидаете появления новой версии, а затем звоните composer update
.
Те же правила применяются к вашим собственным библиотекам. Вы должны были заметить, что если вы не исключаете каталог /vendor
через .gitignore
в свой основной проект, любой удаленный репозиторий, клонированный Composer, рассматривается как подмодуль git. Я предполагаю (не имея опыта с ними), что тогда будут применяться обычные правила для подмодулей.
Но я бы рекомендовал не развиваться таким образом. У вас действительно должно быть два разных репозитория, каждый из которых может работать самостоятельно - ваша библиотека должна быть отделена от основного проекта, и любое развитие там может быть перенесено в BitBucket. Затем вы можете обновить каталог поставщика с помощью Composer.
Теперь загрузка ZIP: у Composer есть специальная обработка дела, если репозиторий размещен в Github. Github предоставляет интерфейс для загрузки ZIP-шаров репозитория, с тегами, ветвями или идентификаторами фиксации в качестве ключа. Эти загрузки доступны для чтения в мире, поэтому нет проблемы с аутентификацией.
Ваша собственная библиотека также может предоставить местоположение для загрузки ZIP-файла этой версии. Но это довольно хлопот, чтобы убедиться, что он всегда правильно поддерживается, если вы делаете это вручную. Я предлагаю вам использовать программное обеспечение для этого: Satis (detailed description).
Satis создает как минимум два статических файла, которые необходимо разместить на веб-сервере, доступном с ваших машин разработки, и также может также создавать ZIP-файлы для каждого найденного тега в ваших хранилищах.
После этого вы изменили бы справочные ссылки ваших репозиториев в основном проекте на один указатель на веб-сервер веб-сайта Satis.
И всякий раз, когда вы создаете новый тег в одном из своих репозиториев, вы снова запускаете Satis для получения новой информации и создания новых ZIP-файлов.
Только в том случае, если вы указали место для загрузки ZIP, у вас будет разница с опцией preferred-install=dist
. Без места загрузки Composer всегда будет клонировать исходный репозиторий.
Я не делаю редактирования в клонированном репо. Просто хочу, чтобы файлы в этой папке были привязаны к родительскому репо.Который, как мы думали, может быть модулем git (хотя я не вижу конфигурацию .gitmodule) Причина, по которой мне нужны файлы, я использую эластичный beanstalk на aws и вам нужно сделать git aws.push , которому требуется полная копия завершенного суб-репо. В основном beanstalk - это еще один BitBucket для версий, которые видит сервер, и без этих файлов, которые они никогда не развертывают на сервере. –
Вы можете создать небольшой скрипт обновления (чтобы не выполнять вручную), который сначала удаляет папку поставщика, а затем вызывает «компоновку установки» (или обновление), а затем удаляет все «.git» каталоги из всех установленных библиотек. Затем добавьте и зафиксируйте любые изменения в '/ vendor', нажмите и разверните. – Sven