868 votes

Comment lier un dossier à une application Heroku existante ?

J'ai une application Rails existante sur GitHub et déployée sur Heroku. J'essaie de mettre en place une nouvelle machine de développement et j'ai cloné le projet à partir de mon dépôt GitHub. Cependant, je ne sais pas comment lier ce dossier à Heroku. À l'origine, j'ai utilisé le fichier heroku create mais il est évident que je ne veux pas le faire cette fois-ci car cela va créer une autre instance Heroku.

1323voto

Brandon Tilley Points 49142

Heroku relie vos projets en fonction de la heroku git remote (et quelques autres options, voir la mise à jour ci-dessous). Pour ajouter votre télécommande Heroku comme télécommande dans votre dépôt actuel, utilisez la commande suivante :

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

project est le nom de votre projet Heroku (le même que l'option project.heroku.com sous-domaine). Une fois que vous l'avez fait, vous pouvez utiliser la fonction heroku xxxx (en supposant que vous avez le Ceinture d'outils Heroku installé), et peut pousser vers Heroku comme d'habitude via git push heroku master . En guise de raccourci, si vous utilisez l'outil de ligne de commande, vous pouvez taper :

heroku git:remote -a project

où, encore une fois, project est le nom de votre projet Heroku (merci, Colonel Panic ). Vous pouvez nommer la télécommande Git comme vous le souhaitez en passant le paramètre -r remote_name .

[Mise à jour]

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

  1. Si vous spécifiez un nom d'application via l'option --app (par exemple, l'option heroku info --app myapp ), il utilisera cette application.
  2. Si vous spécifiez un Git à distance par l'intermédiaire du --remote (par exemple, l'option 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.remote 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", utilisez git config heroku.remote production dans votre référentiel, et Heroku exécutera git config heroku.remote pour lire la valeur de ce paramètre)
  4. Si vous spécifiez l'option no, la gem ne trouve aucune configuration dans votre fichier .git/config et que la gemme ne trouve qu'une seule télécommande dans votre Git remotes qui a "heroku.com" dans l'URL, elle utilisera cette télécommande.
  5. Si aucune d'entre elles ne fonctionne, une erreur est générée, vous demandant de passer --app à votre commandement.

0 votes

Le lien vers "la source", ci-dessus, ne fonctionne pas. Essayez peut-être cette page : devcenter.heroku.com/articles/utiliser-la-cli -- bien que je pense que la doc là n'est pas assez.

0 votes

Merci, Purplejacket, ils ont renommé un module et le lien a été invalidé. J'ai mis à jour l'URL.

1 votes

Si vous essayez d'utiliser le heroku git:remote méthode, vérifiez que vous utilisez le clipper heroku toolbelt, et que vous n'avez pas de gemme heroku encore installée sur votre système (il semble que cela n'ait pas fonctionné pour moi avec les anciennes gemmes).

245voto

Colonel Panic Points 18390

El Heroku CLI 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 votes

! Resource not found

1 votes

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

2 votes

C'est toujours la bonne façon de procéder, même si vous avez connecté votre application Heroku directement à GitHub. Notez que cela n'écrasera pas votre télécommande "origin" ; cela crée une télécommande "heroku" à la place.

147voto

Ghoti Points 1330

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

heroku keys:add

Sinon, vous ne serez pas en mesure de pousser ou de tirer sur le dépôt.

4 votes

Oh oui ! Cela m'a aidé aussi. J'avais une application où nous avons commencé de manière basique, puis bifurqué "heroku" en "staging" et "production". Donc j'ai fait git remote add staging git@staging.xx:yy.git y git remote add production git@production.xx:yy.git -- mais ce n'était pas suffisant. Quand j'ai essayé de faire git push staging master (ou production), j'obtiens "Permission refusée (publickey). fatal : The remote end hung up unexpectedly". Pour corriger cette erreur, il fallait faire heroku keys:add comme le mentionne Ghoti.

4voto

msroot Points 226

Utilisez la fourchette d'Heroku

  1. Utilisez la nouvelle commande "heroku fork" ! Elle va copier tout l'environnement et vous devez mettre à jour le repo github après !

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

    git clone git@heroku.com:youamazingapp.git
  3. Créez un nouveau dépôt sur github et ajoutez-y le fichier suivant

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

    git push origin master

2voto

Udhayakumar Points 899

Vous devriez probablement démarrer ssh-agent et ajouter vos clés. Vérifie ça,

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

Ça m'a aidé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X