How to link a folder with an existing Heroku app
The Heroku CLI has an easy shortcut for this. For an app named 'falling-wind-1624':
$ heroku git:remote -a falling-wind-1624
Git remote heroku added.
See https://devcenter.heroku.com/articles/git#creating-a-heroku-remote
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 [email protected]: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" usegit config heroku.remote production
in your repository, and Heroku will rungit 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.