web-dev-qa-db-fra.com

heroku et github en même temps

Je comprends donc que heroku fonctionne comme un référentiel git, mais disons que je veux utiliser github ainsi qu'un référentiel. Comment le configurer de telle sorte que j'ai deux référentiels et que les deux soient synchronisés?

59
K L

Vous pouvez avoir plusieurs télécommandes sur une installation git. Vous auriez une télécommande github et une télécommande heroku.

En supposant que vous avez déjà la configuration de github, vous poussez probablement vers github avec quelque chose comme:

git Push Origin master

Origin est votre télécommande et master est votre branche.

Suivez les instructions de pour commencer avec Herok choisissez la langue souhaitée et poursuivez le didacticiel. Ce tutoriel suppose que vous avez déjà la configuration de github et vous montrera comment créer votre heroku à distance - via heroku create.

Vous poussez ensuite vers github comme d'habitude, et poussez vers heroku via:

git Push heroku master

Le même format s'applique - heroku est votre télécommande et master est votre branche. Vous n'écrasez pas votre télécommande Github ici, vous en ajoutez une autre, vous pouvez donc toujours faire les deux push via un commit avec un workflow tel que:

git add .
git commit -m "Going to Push to Heroku and Git"
git Push Origin master -- Push to Github Master branch
git Push heroku master -- Push to Heroku
85
Dan Hoerst

Si vous voulez pouvoir pousser et tirer vers plusieurs télécommandes:

Ajoutez-les d'abord:

git remote add Origin <github repo>
git remote add heroku [email protected]:<app name>.git

Puis Push

git Push Origin master
git Push heroku master

Si vous souhaitez pousser vers les deux télécommandes en même temps:

Modifiez votre fichier de configuration pour que Origin pointe à la fois vers heroku et github:

git config -e

Ajouter/remplacer:

[remote "Origin"]
    url = [email protected]:username/somerepo.git
    url = ssh://[email protected]/username/somerepo.git

Puisque vous utilisez github, vous pouvez vous intégrer à heroku en accédant à:

https://dashboard.heroku.com/apps/<app name>/settings#github-repo

et en ajoutant le nom de votre référentiel.

github integration

Si vous souhaitez pousser automatiquement vers Heroku après vous être engagé sur GitHub:

vous devrez utiliser une plateforme d'intégration continue comme TravisCI .

Voici les étapes pour que cela fonctionne. Faites attention à ce que vous passez en production, assurez-vous que cela fonctionne avant d'être déployé. Chaque méthode a ses avantages et ses inconvénients.

34
0xcaff

Je pense que c'est en fait le cas recommandé; la fonction de dépôt Heroku git est vraiment pour le déploiement et non la gestion de code.

Utilisez simplement github pour gérer votre code comme d'habitude, mais en plus, poussez vers le dépôt Heroku git lorsque vous êtes prêt à déployer. Il n'est pas nécessaire de les synchroniser avec les outils automatisés, etc., car vous voulez pouvoir pousser vers votre référentiel github sans déployer, par exemple afin de pouvoir sauvegarder ou collaborer sur des fonctionnalités inachevées ou maintenir des environnements de production et de production séparés .

23
Andrew Gorcester

Je le fais assez souvent. Je crée un site pour Heroku mais je veux garder ma source dans Github à des fins d'archivage. J'ai installé des télécommandes:

git remote add Origin <github repo>

et

git remote add heroku <heroku repo>

Ensuite, vous pouvez simplement git Push Origin master et alors git Push heroku master. Heroku vous permet également d'associer un dépôt github dans le but de voir les différences de validation.

16
Richard Brown

Puisque personne ne l'a mentionné auparavant. Git vous permet maintenant d'ajouter plusieurs URL à chaque télécommande. Faites comme ça:

cela ajoutera fetch et Push de github:

git remote add Origin [email protected]:yourName/yourGithubRepo.git

cela remplacera github Push avec heroku Push:

git remote set-url Origin --Push --add [email protected]:yourHerokuRepo.git

cela ajoutera github Push:

git remote set-url Origin --Push --add [email protected]:yourName/yourGithubRepo.git

et c'est une sortie finale:

$ git remote -v
Origin  [email protected]:yourName/yourGithubRepo.git (fetch)
Origin  [email protected]:yourHerokuRepo.git (Push)
Origin  [email protected]:yourName/yourGithubRepo.git (Push)

Après cela, lancez:

git Push

Si, au lieu de travailler, vous dites qch à propos de la configuration en amont, tapez d'abord ceci:

git Push --set-upstream Origin master 
12
meeDamian

Si vous ne souhaitez pas gérer deux référentiels et uniquement celui de Github, voici comment vous pouvez le faire (en supposant que vous avez déjà créé une application Heroku).

1) Tout d'abord, clonez le référentiel Heroku sur votre site local.

2) Créez ensuite un dépôt Github et poussez ce local là-bas.

3) Une fois cela fait, utilisez wercker

4) Allez à "Ajouter une application" et remplissez les détails. Ils sont assez simples. Utilisez le référentiel Github que vous venez de créer.

5) Après avoir ajouté l'application goto Setting et ajouter une cible de déploiement. Sélectionnez heroku dans la liste. Ensuite, sélectionnez l'application Heroku que vous avez créée et les branches que vous souhaitez pousser.

C'est ça! Vous avez terminé. Votre référentiel Github est maintenant synchronisé avec votre application Heroku. Tout ce que vous envoyez au dépôt Github en utilisant

git Push Origin master

sera automatiquement déployé sur votre application Heroku. De cette façon, vous avez votre référentiel sur Github à gérer et vous n'avez qu'un seul dépôt à gérer. :)

2
aandis