希望有人可以在这里为我指明正确的方向。我想更好地了解我的应用程序如何将标签部署到 Heroku,以及我如何利用它来使用标签/分支的组合来对生产进行热修复。我有一个在 Heroku 上运行的 rails 3.1 应用程序。
这是我用于演示的自定义部署 rake 任务的一些输出
git push origin tag deploy.120716134715
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:myusername/myrepository.git
* [new tag] deploy.120716134715 -> deploy.120716134715
deploy tag deploy.120716134715 was created
git push demo deploy.120716134715:master --force
Everything up-to-date
git tag demo.120716134726 deploy.120716134715
git push origin tag demo.120716134726
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:myusername/myrepository.git
* [new tag] demo.120716134726 -> demo.120716134726
所以我正在创建一个部署标签并将其推送到我的 heroku 演示应用程序,然后从部署标签创建一个演示标签。
我的生产 rake 任务输出类似:
Push deploy.120716132600 to Production? Type 'y' to deploy
y
deploying
git push production deploy.120716132600:master --force
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (15/15), 1.42 KiB, done.
Total 15 (delta 12), reused 0 (delta 0)
-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Configure Rails 3 to disable x-sendfile
Installing rails3_disable_x_sendfile... done
-----> Configure Rails to log to stdout
Installing rails_log_stdout... done
-----> Gemfile detected, running Bundler version 1.0.7
All dependencies are satisfied
-----> Installing Exceptional plugin from git://github.com/exceptional/exceptional.git... done.
-----> Installing quick_sendgrid plugin from git://github.com/pedro/quick_sendgrid.git... done.
-----> Configuring New Relic plugin... done.
Installing the New Relic plugin... done.
-----> Compiled slug size is 29.2MB
-----> Launching... done, v291
-----> Deploy hooks scheduled, check output in your logs
http://my-app-production.heroku.com deployed to Heroku
To git@heroku.com:my-app-production.git
9d0f2ca..9827475 deploy.120716132600 -> master
git push origin refs/tags/deploy.120716132600:refs/tags/production.120716133802
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:myusername/myrepository.git
* [new tag] deploy.120716132600 -> production.120716133802
所以部署标签被推送到我的 Heroku 生产应用程序,然后创建一个生产标签并将其推送到源。
所以我的问题是现在对生产进行热修复的最佳方法是什么?假设我的主分支中有更改,我已经在本地提交然后推送。在不推动我对生产所做的新更改的情况下,将生产中的内容拉到本地、修改、提交并推回生产的最佳方法是什么?
这甚至可能吗?
提前感谢大家的帮助,让我知道我需要提供哪些其他信息。就像我说的 Rails 3.1 应用程序,Heroku 上的演示和生产应用程序。