Как подтолкнуть различные локальные ветви Git к Heroku/master
Heroku имеет политику игнорирования всех ветвей, но "мастер".
хотя я уверен, что в Heroku дизайнеры имеют отличные причины для такой политики (я предполагаю, что для хранения данных и оптимизации производительности), последствия для меня как разработчика заключается в том, что любой местный теме ветки я могу работать на, Я хотел бы, простой способ, чтобы перейти в Heroku мастер к этой локальной теме ветки и сделать "ГИТ пуш в Heroku -Ф" более-писать мастер на 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" всегда создает резервную копию всего в origin, и "git push heroku" нажимает любую ветвь, в которой я сейчас нахожусь, на главную ветвь Heroku, перезаписывая ее при необходимости.
будет ли это работать?
[remote "heroku"]
url = [email protected]:my-app.git
push = +refs/heads/*:refs/heads/master
Я хотел бы услышать от кого-то более опытного, прежде чем я начну экспериментировать, хотя я полагаю, что мог бы создать фиктивное приложение на Heroku и поэкспериментировать с этим.
Что касается выборки, мне все равно, если репозиторий Heroku доступен только для записи. У меня все еще есть отдельный репозиторий, как и GitHub, для резервного копирования и клонирования всей моей работы.
сноска: этот вопрос похож, но не совсем то же самое, что хорошее развертывание Git с использованием стратегии ветвей с Heroku?
9 ответов:
при использовании подстановочного знака он должен был присутствовать с обеих сторон refspec, поэтому
+refs/heads/*:refs/heads/masterне будет работать. Но вы можете использовать+HEAD:refs/heads/master:git config remote.heroku.push +HEAD:refs/heads/masterкроме того, вы можете сделать это непосредственно с git push:
git push heroku +HEAD:master git push -f heroku HEAD:master
см.https://devcenter.heroku.com/articles/git#deploying-code
$ git push heroku yourbranch:master
вы должны проверить heroku_san, это решает эту проблему довольно хорошо.
например, можно:
git checkout BRANCH rake qa deployЭто также позволяет легко раскручивать новые экземпляры Heroku для развертывания ветви темы на новых серверах:
git checkout BRANCH # edit config/heroku.yml with new app instance and shortname rake shortname heroku:create deploy # auto creates deploys and migratesи, конечно, вы можете сделать более простые грабли задачи, если вы делаете что-то часто.
также обратите внимание, что если вы используете систему git flow и вашу ветвь функций можно назвать
feature/mobile_additionsи с git remote под названием stagingtwo, то команда нажать на heroku будет
git push stagingtwo feature/mobile_additions:master
самая безопасная команда для нажатия различных локальных ветвей Git на Heroku / master.
git push -f heroku branch_name:masterПримечание: хотя вы можете нажать без использования-f, рекомендуется использовать-F (флаг силы), чтобы избежать конфликтов с толчками других разработчиков.
Я нашел это полезным. http://jqr.github.com/2009/04/25/deploying-multiple-environments-on-heroku.html
в Heroku лаборатории сейчас находится на GitHub надстройку, которая позволяет вам указать, какие ветки раздвигать.
посмотреть в Heroku написать на эту функцию бета.
вам нужно будет зарегистрироваться в качестве бета-тестера на данный момент.
Comments