【发布时间】:2014-12-26 13:20:58
【问题描述】:
我在 git 上获得了 9mb(最后一次提交)应用程序,它曾经要大得多。但在此之后: git push -f heroku HEAD:master 它将超过 90mb 的应用程序推送到服务器。我认为它也可能会推送一些以前的提交......谁能告诉我实际发生了什么以及如何解决它?
谢谢
【问题讨论】:
标签: ruby-on-rails git heroku github
我在 git 上获得了 9mb(最后一次提交)应用程序,它曾经要大得多。但在此之后: git push -f heroku HEAD:master 它将超过 90mb 的应用程序推送到服务器。我认为它也可能会推送一些以前的提交......谁能告诉我实际发生了什么以及如何解决它?
谢谢
【问题讨论】:
标签: ruby-on-rails git heroku github
命令
git push heroku
将当前 git 分支推送到名称为 heroku 的远程存储库。在这种情况下,可能是您的 Heroku 应用程序。
默认情况下,它会推送当前跟踪的分支,一般是master(除非你在一个分支中)。只有在您的分支中存在且在远程分支中不可用的提交才会被推送。非快进提交将被拒绝。
如果你跑了
git push -f heroku HEAD:master
您正在告诉推送将远程分支 master 的内容覆盖为您当前跟踪的分支中的内容,到最新版本 (HEAD)。
-f 选项会强制提交,即使您的分支和远程分支之间的历史记录有时会发生分歧,从而有效地用您的分支的内容覆盖远程分支。
这可能是原因。如果由于某种原因删除内容与您的本地分支不同,您的命令实际上可能会将大量新数据推送到存储库。
【讨论】:
"git push heroku" 只推送你最后一次提交。
如果您想恢复到应用的先前版本,请使用以下命令检查应用的不同版本:
heroku releases
然后您可以使用以下命令返回应用的另一个版本:
heroku rollback vNN
*NN 是您的发布编号
【讨论】: