Comment lier un dossier avec une application Heroku existante


815

J'ai une application Rails existante sur GitHub et déployée sur Heroku. J'essaie de configurer une nouvelle machine de développement et j'ai cloné le projet à partir de mon référentiel GitHub. Cependant, je ne sais pas comment lier ce dossier à Heroku. À l'origine, j'ai utilisé la heroku createcommande, mais je ne veux évidemment pas le faire cette fois car cela créera une autre instance Heroku.

Réponses:


1243

Heroku relie vos projets sur la base de la herokutélécommande git (et quelques autres options, voir la mise à jour ci-dessous). Pour ajouter votre télécommande Heroku en tant que télécommande dans votre référentiel actuel, utilisez la commande suivante:

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

projectest le nom de votre projet Heroku (le même que le project.heroku.comsous - domaine). Une fois que vous l'avez fait, vous pouvez utiliser les heroku xxxxcommandes (en supposant que la ceinture d'outils Heroku est installée), et vous pouvez pousser vers Heroku comme d'habitude via git push heroku master. En tant que raccourci, si vous utilisez l'outil de ligne de commande, vous pouvez taper:

heroku git:remote -a project

où, encore une fois, projectest le nom de votre projet Heroku (merci, colonel Panic ). Vous pouvez nommer la télécommande Git tout ce que vous voulez en passant -r remote_name.

[Mise à jour]

Comme mentionné par Ben dans les commentaires, la télécommande n'a pas besoin d'être nommée herokupour que les commandes gem fonctionnent. J'ai vérifié la source , et il semble que cela fonctionne comme ceci:

  1. Si vous spécifiez un nom d'application via l' --appoption (par exemple heroku info --app myapp), il utilisera cette application.
  2. Si vous spécifiez un nom de télécommande Git via l' --remoteoption (par exemple heroku info --remote production), il utilisera l'application associée à cette télécommande Git.
  3. Si vous ne spécifiez aucune option et que vous avez heroku.remotedéfini dans votre fichier de configuration Git, il utilisera l'application associée à cette télécommande (par exemple, pour définir la télécommande par défaut sur "production" à utiliser git config heroku.remote productiondans votre référentiel, et Heroku s'exécutera git config heroku.remotepour lire la valeur de ce paramètre)
  4. Si vous ne spécifiez aucune option, la gemme ne trouve aucune configuration dans votre .git/configfichier et la gemme ne trouve qu'une seule télécommande dans vos télécommandes Git qui a "heroku.com" dans l'URL, elle utilisera cette télécommande.
  5. Si aucun de ces éléments ne fonctionne, il déclenche une erreur vous demandant de passer --appà votre commande.

Le lien vers "la source" ci-dessus ne fonctionne pas. Essayez peut-être cette page: devcenter.heroku.com/articles/using-the-cli - même si je pense que la doc n'y est pas suffisante.
Purplejacket

1
Si vous essayez d'utiliser la heroku git:remoteméthode, vérifiez que vous utilisez le cli de la barre d'outils heroku et que vous n'avez pas encore de gemme heroku installée sur votre système (il semble que cela ne fonctionnait pas pour moi avec les anciennes gemmes).
Pierre-Adrien Buisson

3
En outre, pour plusieurs branches Heroku, vous pouvez utiliser $ git config heroku.remote <appname>pour définir l'application par défaut afin que vous puissiez utiliser les commandes de terminal pour cette application.
Sheharyar

1
si vous utilisez http, heroku loginla télécommande est de la formehttps://git.heroku.com/project-name.git
max pleaner

1
Remarque: Heroku le décrit maintenant dans l'aperçu du projet: accédez à dashboard.heroku.com , cliquez sur votre application, puis passez à l'onglet "déployer" et choisissez la méthode de déploiement "Heroku git" (sélectionnée par défaut). Ensuite, vous obtiendrez des instructions sur la façon de connecter un dossier / git existant avec Heroku.
pratique le

230

La CLI Heroku a un raccourci facile pour cela. Pour une application nommée 'Falling Wind 1624':

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

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


1
! Resource not found
Vert

1
Vous pouvez nommer la télécommande comme vous voulez en passant-r other_remote_name
MasterScrat

2
C'est toujours la bonne façon de le faire même si vous avez connecté votre application Heroku directement à GitHub. Notez qu'il n'écrasera pas votre télécommande "d'origine"; il crée une télécommande "heroku" à la place.
Seth

144

N'oubliez pas, si vous êtes également sur une machine où vous n'avez pas encore configuré Heroku

heroku keys:add

Ou vous ne pourrez pas pousser ou tirer vers le repo.


3
Oh oui! Cela m'a aussi aidé. J'avais une application où nous avons commencé la base, puis bifurqué "heroku" en "mise en scène" et "production". Alors je l'ai fait git remote add staging git@staging.xx:yy.gitet git remote add production git@production.xx:yy.git- mais ce n'était pas suffisant. Lorsque j'essayais de faire git push staging master(ou de produire), j'obtenais "Autorisation refusée (publickey). Fatal: l'extrémité distante a raccroché de façon inattendue". Ce qui a corrigé cette erreur était de le faire heroku keys:addcomme le mentionne Ghoti.
Purplejacket

8

Deux choses à prendre en compte lors de la configuration d'un nouveau système de déploiement pour une ancienne application

1. Pour vérifier l'accès de votre application à Heroku (en particulier l'application)

heroku apps

il répertorie les applications auxquelles vous avez accès si vous configurez pour la première fois, vous devrez probablement

heroku keys:add

2. Ensuite, configurez votre télécommande git

Pour l'application Heroku déjà créée, vous pouvez facilement ajouter une télécommande à votre référentiel local avec la heroku git: remotecommande. Tout ce dont vous avez besoin est le nom de votre application Heroku:

heroku git:remote -a appName

vous pouvez également renommer vos télécommandes avec la commande git remote rename:

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

alors vous pouvez utiliser la commande git remote pour confirmer qu'une télécommande a été définie pour votre application

 git remote -v

4

Utilisez la fourchette d'Heroku

  1. Utilisez la nouvelle commande "heroku fork"! Il copiera tout l'environnement et vous devrez mettre à jour le dépôt github après!

    heroku fork -a sourceapp targetapp
    
  2. Clonez-le local

    git clone git@heroku.com:youamazingapp.git
    
  3. Faire un nouveau repo sur github et l'ajouter

    git remote add origin https://github.com/yourname/your_repo.git
    
  4. Poussez sur github

    git push origin master
    



En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.