使用Git标签对Heroku进行热修复

时间:2012-07-16 13:58:57

标签: ruby-on-rails-3.1 heroku git-branch git-tag

希望有人能指出我正确的方向。我想更好地了解我的应用程序如何将标记部署到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

所以我正在创建一个deploy标签并将其推送到我的heroku演示应用程序,然后从deploy标签创建一个演示标签。

我的生产佣金任务输出类似:

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生产应用程序,然后创建生产标记并将其推送到原点。

所以我的问题是现在什么是对生产进行热修复的最佳方法?假设我已经在我的主分支中进行了更改,我已经在本地提交然后推送。什么是最好的方法,采取什么生产拉低本地,修改它,承诺它,并推动生产,而不是推动我对生产的新变化?

这甚至可能吗?

感谢大家提前帮助,让我知道我需要提供哪些其他信息。就像我在Heroku上说rails 3.1 app,一个演示和一个制作应用程序。

1 个答案:

答案 0 :(得分:0)

  

最好的方法是采取什么样的生产方式将其拉低,将其修改,修改,提交并推迟生产,而不是推动我对生产所做的新改变?

将生产中的内容拉入新分支,修改,提交并推送该分支。请参阅此处获取相关信息:Git pull a certain branch from GitHub