Как подтолкнуть различные локальные ветви 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?

746   9  

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
git push -f heroku local_branch_name: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 (флаг силы), чтобы избежать конфликтов с толчками других разработчиков.

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

посмотреть в Heroku написать на эту функцию бета.

вам нужно будет зарегистрироваться в качестве бета-тестера на данный момент.

Я думаю, что это должно быть

push = refs/heads/*:refs/heads/*

вместо...

Comments

    Ничего не найдено.