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


814

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

Answers:


1242

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

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

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

heroku git:remote -a project

同样,这里project是您的Heroku项目的名称(感谢Panic Panic)。您可以通过传递Git遥控器的名称-r remote_name

[更新]

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

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

指向上方“源”的链接无效。也许尝试以下页面:devcenter.heroku.com/articles/using-the-cli- 尽管我认为那里的文档还不够。
Purplejacket 2011年

1
如果您尝试使用该heroku git:remote方法,请检查您是否在使用heroku工具带cli,并且系统上还没有安装任何heroku gem(似乎对旧的gems不适用于我)。
Pierre-Adrien Buisson,

3
此外,对于多个heroku分支机构,您可以$ git config heroku.remote <appname>用来设置默认应用程序,以便可以对该应用程序使用终端命令。
Sheharyar

1
如果使用http即heroku login远程是形式https://git.heroku.com/project-name.git
最大清除器

1
注意:Heroku现在在项目概述中对其进行描述:导航至dashboard.heroku.com,单击您的应用程序,然后切换到“ deploy”选项卡并选择部署方法“ Heroku git”(默认情况下已选中)。然后,您将获得有关如何将现有文件夹/ git与Heroku连接的说明。
方便的

230

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


1
! Resource not found
2013年

1
您可以通过传递名称来命名远程-r other_remote_name
控制器

2
即使您已经将Heroku应用程序直接连接到GitHub,这仍然是正确的方法。请注意,它不会覆盖您的“原始”遥控器;它会创建一个“ heroku”遥控器。
赛斯

144

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

heroku keys:add

否则您将无法推入或拉入仓库。


3
哦,是的!那对我也有帮助。我有一个应用程序,从这里开始基本,然后将“ heroku”分为“ staging”和“ production”。所以,我没有git remote add staging git@staging.xx:yy.gitgit remote add production git@production.xx:yy.git-但是这还不够。当我尝试做git push staging master(或生产)时,我会得到“权限被拒绝(公钥)。致命:远程端意外挂断”。heroku keys:add正如Ghoti所提到的,解决该错误的原因是。
Purplejacket 2011年

8

为旧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

4

用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
    



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.