Comment «git push heroku master» sait-il où pousser et comment repousser un repo différent?

En poussant vers un référentiel hébergé sur Heroku, il faut exécuter la commande suivante:

git push heroku master 

Que heroku et master dans cette commande? Comment git sait-il où pousser? (le chemin git)

Aussi, je ne savais pas que je heroku rename utiliser heroku rename pour renommer une application, donc avant, disons que j’utilisais le nom de l’application trytryheroku et maintenant j’utilise heroku create real-thing mais si je pousse, ça pousse toujours à trytryheroku … y a-t-il un moyen de pousser à la réalité plutôt?

La partie ‘heroku’ est le nom de la télécommande que vous avez configurée – lorsque vous créez une application heroku la première fois qu’elle crée un appel distant git ‘heroku’ pointant vers votre application – si vous tapez ‘git remote’ dans votre projet, il va vous montrer les points d’extrémité distants. Il n’y a rien qui vous empêche d’utiliser ‘heroku’ comme nom de la télécommande – si vous avez plusieurs environnements pour votre application, vous pouvez avoir des télécommandes nommées production ou mise en scène par exemple.

La partie «maître» est la twig locale que vous souhaitez pousser sur la télécommande. Si vous développez par exemple une twig nommée “myfeature” et que vous souhaitez la déployer sur heroku, vous le feriez;

 git push heroku myfeature:master 

le plus: le maître dit ici de pousser ma twig myfeature locale dans la twig master de la télécommande – note: heroku ne peut être déployé qu’à partir de la twig master.

Si vous renommez une application, l’URL Heroku Git Remote changera – faites un git remote -v qui vous montrera le repo git utilisé par votre application, vous devrez probablement supprimer votre ancienne origine Heroku et en append une nouvelle, git remote rm heroku puis git remote add heroku git@newgitpathfromcontrolpanel

Pour en savoir plus sur Git, je recommanderais ce livre

PARTIE 1: “Comment git sait-il où pousser?”

Avant d’exécuter la commande mentionnée ci-dessus:

 $ git push heroku master 

Il y a toujours peu d’autres étapes à exécuter: installer Git et Heroku, créer un repository Git local, s’inscrire à heroku, se connecter à heroku via une ligne de commande, créer un descripteur heroku au point d’hébergement ( expliqué dans la PARTIE 2 )

1. Un référentiel Git local:

  $ git init Initialized empty Git repository in .git/ $ git add . $ git commit -m "my first commit" Created initial commit 5df2d09: my first commit 44 files changed, 8393 insertions(+), 0 deletions(-) create mode 100644 README create mode 100644 Procfile create mode 100644 app/controllers/source_file ... 

2. Inscrivez-vous (ed) pour Heroku et connectez-vous via la ligne de commande:

 $ heroku login Enter your Heroku credentials. Email: [email protected] Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /Users/adam/.ssh/id_rsa.pub 

Donc, en lançant $ git push heroku master vous avez poussé le code / app sur Heroku.


PARTIE 2: mais qu’indique le héros et le maître ?

Heroku est une plate-forme d’hébergement qui dépend de Git (Dissortingbuted Version Control System) pour son déploiement.

Le concept de base de «pousser» consiste à envoyer quelque chose (fichier, application, ..) localement (dans notre machine de travail) ailleurs, dans ce cas vers un référentiel distant (machine distante).

Dans Git avant d’utiliser ‘push’, nous créons un remote (handle) qui sert de référence à un repository distant (URL complète), en utilisant la commande suivante:

 $ git remote add   

La structure de base de la commande ‘push’ est la suivante:

 $ git push   

Donc, $ git push heroku master votre code / app / fichier (depuis un repository Git local) vers un repo distant “heroku”.

se demandant quand cette télécommande ‘heroku’ a été créée, elle a été ajoutée lorsque vous avez exécuté $ heroku create

 $ heroku create Creating stark-fog-398... done, stack is cedar http://stark-fog-398.herokuapp.com/ | [email protected]:stark-fog-398.git Git remote heroku added 

Notez la dernière ligne ” Git remote heroku ajouté “.

pour le rendre plus clair, voici une commande Git pour vérifier / afficher toutes les télécommandes: $ git remote -v affichera quelque chose de similaire à ce qui suit

 $ git remote -v heroku [email protected]:somerepo.git (fetch) heroku [email protected]:somerepo.git (push) 

Nous pouvons donc supposer que la commande suivante a été exécutée (implicitement) quelque part, lorsque vous avez créé $ heroku , créant ainsi la télécommande heroku vers un référentiel heroku *

 $ git remote add heroku [email protected]:somerepo.git 

heroku est nécessaire pour aider à pousser, et master est simplement la twig que vous poussez. Le git sait où pousser parce que vous créez une application Heroku, le push est automatiquement configuré, ce que vous pouvez voir en tapant

 git remote -v 

Si vous avez besoin de changer cela, supprimez-le avec git remote rm heroku , puis ajoutez yoru nouvelle application avec git remote add heroku [email protected]:your-application-15.git

Tout comme vous, j’ai aussi eu du mal à comprendre ces trucs de Git et Heroku et j’étais aussi confus. Mais maintenant, j’ai un peu de clarté pour pouvoir répondre à votre question en bref.

En supposant que vous avez configuré git sur votre répertoire de projet. Il existe un dossier caché .git dans votre dossier de projet qui contient un fichier nommé “config” qui contient toutes les informations sur les télécommandes.

Les télécommandes sont vos répertoires individuels nommés individuellement comme origine, heroku, mise en scène, prod etc.

Dans votre commande, heroku représente le référentiel que vous avez associé au projet heroku. Ouvrez le fichier de configuration, vous verrez l’URL.

Quand tu cours

 git push heroku master 

vous dites à git de pousser la twig principale de votre repository d’origine vers la twig principale du référentiel heroku

Reste que tous les détails sont déjà partagés dans d’autres réponses, donc ne voulez pas répéter. Donc, ce n’est qu’une réponse courte à ma compréhension. J’espère que cela aide.