我正在合作一个项目并克隆了Github的回购,做了一些改动并推到了Heroku。现在克隆的应用程序的所有密钥和密码都是硬编码的,而不是ENV变量。
所以我创建了ENV变量,将文件添加到.gitignore。所以这个应用程序在提交历史记录中仍然有这些键。我现在所做的是让作者在Github上创建一个新的repo,从原始应用程序中删除.git文件并将新代码推送到新的repo。
所以现在我克隆了新的应用程序,在Heroku应用程序中添加了一个新的遥控器。
heroku git:remote -a myapplication
我的问题是我无法将新应用推送到现有的Heroku应用。我什么时候得到:
error: failed to push some refs to 'git@heroku.com:myapplication.git
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
所以git pull
表示一切都是最新的。
git remote -v
输出
heroku git@heroku.com:myapplication.git (fetch)
heroku git@heroku.com:myapplication.git (push)
origin git@github.com:author/myapplication.git (fetch)
origin git@github.com:author/myapplication.git (push)
如何将新应用程序推送到现有的heroku应用程序?
我跑了
git push -f heroku master
推了但我有错误
you have not declared a Ruby version in your Gemfile.
To set your Ruby version add this line to your Gemfile:"
ruby '1.9.2'"
我以前从未指定过,现在所有原始的配置变量都不再存储在Heroku中。
答案 0 :(得分:3)
git pull
会从GitHub中提取,而GitHub已经提交了所有提交内容。
您可能需要:
git pull heroku
origin
heroku
命令推送到heroku
。答案 1 :(得分:1)
Git使用跟踪分支的概念来了解哪个远程分支链接到本地分支。
在您的情况下,您可能将本地分支(我认为它是master
)链接到origin/master
。所以,当你执行git pull
时,Git会尝试从git@github.com:author/myapplication.git
获取新内容,这不是通缉行为。
您必须使用以下方式更改跟踪的分支:
git branch --set-upstream-to heroku/my_branch
然后,您可以执行git pull
现在具有所需行为。然后像往常一样推送到heroku。