У Heroku есть политика игнорирования всех ветвей, кроме 'master'.
Хотя я уверен, что у разработчиков Heroku есть отличные причины для этой политики (я предполагаю, что для хранения и оптимизации производительности), для меня, как для разработчика, следствием является то, что в любой локальной ветке тем, над которой я могу работать, мне бы хотелось простой способ переключить мастера Heroku на эту локальную ветку тем и выполнить команду «git push heroku -f», чтобы перезаписать мастер на Heroku.
То, что я получил от прочтения раздела "Pushing Refspecs" http://progit.org/book/ch9-5.html, равно
git push -f heroku local-topic-branch:refs/heads/master
Что мне действительно нравится, так это способ настроить это в файле конфигурации так, чтобы «git push heroku» всегда делал вышеуказанное, заменяя local-topic-branch именем любого моего текущая ветка бывает Если кто-нибудь знает, как этого добиться, пожалуйста, дайте мне знать!
Предостережение для этого, конечно, заключается в том, что это разумно, только если я единственный, кто может перейти к этому приложению / хранилищу Heroku. Команда тестирования или QA может управлять таким репозиторием, чтобы опробовать разные ветви-кандидаты, но им придется координировать свои действия, чтобы они все согласились с тем, какую ветвь они используют в любой конкретный день.
Излишне говорить, что было бы очень неплохо иметь отдельный удаленный репозиторий (например, GitHub) без этого ограничения для резервного копирования всего. Я бы назвал это «происхождение» и использовал бы «heroku» для Heroku, чтобы «git push» всегда делал резервную копию всего, что нужно, а «git push heroku» помещает любую ветвь, в которой я сейчас нахожусь, в главную ветку Heroku, перезаписывая ее если необходимо.
Будет ли это работать?
[remote "heroku"]
url = git@heroku.com:my-app.git
push = +refs/heads/*:refs/heads/master
Я хотел бы услышать от кого-то более опытного, прежде чем я начну экспериментировать, хотя я предполагаю, что мог бы создать фиктивное приложение на Heroku и поэкспериментировать с этим.
Что касается выборки, мне все равно, если репозиторий Heroku предназначен только для записи. У меня все еще есть отдельный репозиторий, такой как GitHub, для резервного копирования и клонирования всей моей работы.
Сноска. Этот вопрос похож на Хорошее развертывание Git с использованием стратегии ветвления с Heroku?