Работа над раздвоенным GitHub-репозиторием через Composer - PullRequest
0 голосов
/ 24 апреля 2018

Я надеюсь, что мой вопрос не слишком расплывчатый, но не могу получить правильный ответ путем поиска.

У меня следующая ситуация;Мы работаем над проектом и установили определенные зависимости через Composer.Одна из этих зависимостей довольно устарела и требует некоторых исправлений и дополнений.Я поставил этот репозиторий на GitHub и добавил его в Packagist.

Для работы с кодом мне нужно запустить его в моем проекте и отредактировать оттуда, чтобы увидеть, работают ли мои изменения, но он находится в vendor папка, в которую он устанавливается через composer.

Клонирование этого проекта через GitHub непосредственно в папке vendor не будет работать, так как автозагрузчик для него не будет записан.

Что ядо сих пор работаю в папке vendor, затем копирую и вставляю свою работу оттуда в папку GitHub и отправляю туда, но с логистической точки зрения довольно сложно.

Как работать с библиотекой композиторачто встроено в проект таким образом, что вы можете зафиксировать свои изменения из этой папки?

1 Ответ

0 голосов
/ 24 апреля 2018
  1. Измените ограничение пакета в composer.json, чтобы использовать ветку вместо теговой версии - вы можете использовать dev-master для master ветви или dev-my-branch для my-branch ветви. Вы также можете настроить ветку alias .

    "require": {
        "some-vendor/some-package": "dev-master",
    }
    
  2. Добавить репозиторий , который указывает на вашу вилку:

    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/richard/some-package/"
        },
    ]
    
  3. Запустите composer update, чтобы установить новую версию с вашего форка (или composer require "some-vendor/some-package:dev-master", если вы не хотите обновлять какие-либо другие зависимости).

Теперь у вас должны быть клонированы источники из вашей вилки в vendor/some-vendor/some-package. Вы можете редактировать эти файлы и проверять, соответствуют ли изменения вашему приложению. После того, как вы закончите свою работу:

  1. Зафиксируйте изменения в вашем форке и отправьте их на GitHub.
  2. Вернитесь в корень своего приложения и запустите composer update или composer require "some-vendor/some-package:dev-master". Это обновит ваш composer.lock файл, чтобы использовать последнюю версию вашего форка. Затем внесите изменения в свой замок и нажмите.

Теперь, если кто-то клонирует ваш проект (или просто извлечет изменения), он получит новый composer.lock, указывающий на ваш форк с указанным хешем коммита - composer install всегда должен устанавливать одну и ту же версию вашего форка напрямую из GitHub.

...