Gemfile.lock
包含在.gitignore
. 这是开发人员之间的协议,应该保持不变。有没有办法将代码推送到 Heroku?或者您可能会建议一些不使用 Git 部署应用程序的 Ruby 托管?
问问题
207 次
2 回答
1
要将其推送到 Heroku,您必须将其添加到您的存储库中。你为什么不想提交呢?建议在您的仓库中提交 Gemfile.lock(除非您正在开发 gem):
开发应用程序时,请检查您的 Gemfile.lock,因为您将在所有机器上使用捆绑器工具,并且捆绑器强制执行的精度对于应用程序来说是非常理想的。
于 2014-04-16T22:47:50.903 回答
0
因此,目前我们正在通过以下方式进行操作:
- 我们的 Git 存储库不存储
Gemfile.lock
- 当我们需要推送到 Heroku 时,我们复制项目文件夹
- 在复制
origin
远程中删除以防止意外推送到我们的 Git,只留下heroku
, - 进行提交,其中包括
Gemfile.lock
- 并将副本推送到 Heroku。
然后,如果我们在特殊情况下需要在 Heroku 上进行实时调试,我们不删除复制文件夹,将更改的文件从主文件夹复制到它,并进行小提交以将它们发布到 Heroku。
如果我们需要进行最终发布:
- 我们在主目录中做了一个大的提交,
- 制作主目录的干净副本,包含所有更改,
- 做出额外的承诺以包括
Gemfile.lock
- 使用“强制”键将副本推送到 Heroku。
这可以防止我们在 Git 存储库中进行大量小型调试提交。
我们中的一些人有一个 Windows 批处理文件可以自动发布:
@echo off
rmdir /s /q heroku
xcopy /E /H our-app-folder heroku\
cd heroku
git remote remove origin
git add .
git add --force Gemfile.lock
git commit -m "Heroku push"
SET HOME=%HOMEDRIVE%%HOMEPATH%
git push heroku master -f
cmd /c heroku pg:reset DATABASE --confirm heroku-app-name
cmd /c heroku run rake db:migrate
cmd /c heroku run rake db:seed
cmd /c heroku restart
pause
我们需要做这一切,因为 Heroku 仅支持通过 Git 发布。
于 2014-04-17T10:02:41.587 回答