如何将文件夹与现有的 Heroku 应用程序链接

我在 GitHub 上已有一个 Rails 应用程序,并已部署在 Heroku 上。我试图建立一个新的开发机器,并从我的 GitHub 存储库中克隆了该项目。但是,我对如何将此文件夹链接到 Heroku 感到困惑。最初,我使用heroku create命令,但是显然这次我不想这样做,因为它将创建另一个 Heroku 实例。

答案

Heroku基于heroku git remote(以及其他一些选项,请参见下面的更新)链接您的项目。要将 Heroku 遥控器添加为当前存储库中的遥控器,请使用以下命令:

git remote add heroku git@heroku.com:project.git

其中project是您的 Heroku 项目的名称(与project.heroku.com子域相同)。完成后,您可以使用heroku xxxx命令(假设您已安装Heroku Toolbelt ),并且可以通过git push heroku master照常推送到 Heroku。作为快捷方式,如果您使用命令行工具,则可以键入:

heroku git:remote -a project

同样, project是您的 Heroku 项目的名称(感谢Panic Panic )。您可以通过传递-r remote_name来为 Git 远程-r remote_name

[更新]

正如 Ben 在评论中提到的那样,不需要将遥控器命名为heroku使 gem 命令正常工作。我检查了源 ,看来它的工作方式如下:

  1. 如果通过--app选项指定了应用程序名称(例如heroku info --app myapp ),它将使用该应用程序。
  2. 如果您通过--remote选项指定了 Git 远程名称(例如heroku info --remote production ),它将使用与该 Git 远程关联的应用程序。
  3. 如果您未指定任何选项,并且在 Git 配置文件中设置了heroku.remote ,它将使用与该遥控器关联的应用程序(例如,使用存储库中的git config heroku.remote production来将默认遥控器设置为 “production” ,然后 Heroku 将运行git config heroku.remote以读取此设置的值)
  4. 如果不指定任何选项,则 gem 在.git/config文件中找不到任何配置,并且 gem 仅在 URL 中带有 “heroku.com” 的 Git 远程中找到一个远程,它将使用该远程。
  5. 如果这些都不起作用,则会引发错误,指示您将--app传递给命令。

Heroku CLI为此提供了一个简单的快捷方式。对于名为 “falling-wind-1624” 的应用:

$ heroku git:remote -a falling-wind-1624
Git remote heroku added.

参见https://devcenter.heroku.com/articles/git#creating-a-heroku-remote

别忘了,如果您还在以前未设置过 heroku 的计算机上

heroku keys:add

否则,您将无法推动或拉回仓库。

为旧 App 设置新的部署系统时需要注意的两件事

1. 检查您对 Heroku(特别是该应用)的应用访问权限

heroku apps

如果您是首次设置,它将列出您有权访问的应用程序,您可能需要

heroku keys:add

2. 然后设置您的 git remote

对于已经创建的 Heroku 应用程序,您可以使用heroku git: remote命令轻松地将远程添加到本地存储库。您需要的只是 Heroku 应用程序的名称:

heroku git:remote -a appName

您还可以使用 git remote named 命令重命名遥控器:

git remote rename heroku heroku-dev(you desired app name)

然后您可以使用 git remote 命令来确认已为您的应用设置了远程

git remote -v

用 heroku 的叉子

  1. 使用新的 “heroku fork” 命令!它将复制所有环境,之后您必须更新 github 仓库!

    heroku fork -a sourceapp targetapp
  2. 在本地克隆

    git clone git@heroku.com:youamazingapp.git
  3. 在 github 上做一个新的仓库并添加它

    git remote add origin https://github.com/yourname/your_repo.git
  4. 推送到 github

    git push origin master

您应该可能启动 ssh-agent 并添加密钥。检查一下

http://wordgraphs.com/post/5000/Heroku--Permission-denied--publickey---fatal--Could-not-read-from-remote-repository-

它帮助了我。

我的项目在 github 和 heroku 中,用于上传 heroku 使用:

heroku git:remote -a <project>

该文档是:

https://devcenter.heroku.com/articles/git