How to link a folder with an existing Heroku app

git, heroku

Solution

Heroku links your projects based on the `heroku` git remote (and a few other options, see the update below). To add your Heroku remote as a remote in your current repository, use the following command:

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

where `project` is the name of your Heroku project (the same as the `project.heroku.com` subdomain). Once you've done so, you can use the `heroku xxxx` commands (assuming you have the Heroku Toolbelt installed), and can push to Heroku as usual via `git push heroku master`. As a shortcut, if you're using the command line tool, you can type:

heroku git:remote -a project

where, again, `project` is the name of your Heroku project (thanks, Colonel Panic). You can name the Git remote anything you want by passing `-r remote_name`.

[Update]

As mentioned by Ben in the comments, the remote doesn't need to be named `heroku` for the gem commands to work. I checked the source, and it appears it works like this:

- If you specify an app name via the `--app` option (e.g. `heroku info --app myapp`), it will use that app.

- If you specify a Git remote name via the `--remote` option (e.g. `heroku info --remote production`), it will use the app associated with that Git remote.

- If you specify no option and you have `heroku.remote` set in your Git config file, it will use the app associated with that remote (for example, to set the default remote to "production" use `git config heroku.remote production` in your repository, and Heroku will run `git config heroku.remote` to read the value of this setting)

- If you specify no option, the gem finds no configuration in your `.git/config` file, and the gem only finds one remote in your Git remotes that has "heroku.com" in the URL, it will use that remote.

- If none of these work, it raises an error instructing you to pass `--app` to your command.

Problem

I have an existing Rails app on GitHub and deployed on Heroku. I'm trying to set up a new development machine and have cloned the project from my GitHub repository. However, I'm confused as to how to link this folder up to Heroku. Originally, I used the `heroku create` command, but obviously I don't want to do that this time since it will create another Heroku instance.

Original source