web-dev-qa-db-fra.com

Comment "git Push heroku master" sait-il où pousser et comment pousser à un autre dépôt?

Lorsque vous appuyez sur un référentiel hébergé sur Heroku, vous devez exécuter la commande suivante:

git Push heroku master

Qu'est-ce que heroku et master indiquent dans cette commande? Comment git sait-il où pousser? (le chemin git)

De plus, je ne savais pas que je pouvais utiliser heroku rename pour renommer une application, alors avant, disons que j'utilisais le nom de l'application trytryheroku et que j'utilise maintenant heroku create real-thing mais si je pousse, il pousse toujours à trytryheroku ... y at-il un moyen de pousser à la vraie chose à la place?

83
Sarah Wong

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 sur votre application, si vous tapez 'git remote' dans votre projet, c'est vous montrera les points finaux distants. Rien ne 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 intermédiaire par exemple.

La partie 'master' est la branche locale que vous souhaitez pousser vers la télécommande. Par exemple, si vous développez une branche appelée "myfeature" et que vous souhaitez le déployer sur heroku, vous le feriez;

git Push heroku myfeature:master

l’addition: maître ici dit Poussez ma branche myfeature locale dans la branche master de la télécommande - remarque: heroku ne peut se déployer que depuis la branche maître.

Si vous renommez une application, l'url distante heroku git changera - faites un git remote -v qui vous montrera le dépôt git que votre application utilise, vous devrez probablement supprimer votre ancien heroku Origin et ajouter le nouveau, git remote rm heroku puis git remote add heroku git@newgitpathfromcontrolpanel

Pour en savoir plus sur Git, je recommanderais this book

95
John Beynon

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 dépôt Git local, s’inscrire à heroku, se connecter à heroku via une ligne de commande, créer un identifiant heroku vers le point d’hébergement ( expliqué dans la PARTIE 2 )

1. Un dépôt 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. Vous êtes inscrit (e) pour Heroku et connecté 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 exécutant $ git Push heroku master vous avez transmis le code/l'application à Heroku.


PART 2: mais qu'est-ce que heroku et maître indiquent ?

C’est plus une question Git que Heroku - Heroku est une plateforme d’hébergement, qui dépend du déploiement de Git (Distributed Version Control System).

Le concept de base de 'Push' est de pousser quelque chose (fichier, application, ..) que nous avons localement (dans notre machine en fonctionnement) vers un autre endroit, dans ce cas vers un référentiel distant (machine distante).

Avant d'utiliser 'Push' dans Git, nous créons un remote (handle) qui sert de référence à un référentiel distant (URL complète). Pour ce faire, utilisez la commande suivante:

$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>

La structure de base de la commande 'Push' est la suivante:

$ git Push <remote-name> <branch>

Alors $ git Push heroku master pousse actuellement votre code/application/fichier (depuis un dépôt Git local) vers un dépôt distant "heroku".

se demandant quand cette télécommande 'heroku' a été créée, elle a été ajoutée lors de l'exécution $ 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

Remarquez la dernière ligne "ajout de heroku à distance Git".

pour plus de clarté, voici une commande Git pour vérifier/afficher toutes les télécommandes: $ git remote -v affichera quelque chose de similaire au suivant

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

Donc, nous pouvons 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 à une certaine repo heroku ( url) *

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

heroku est nécessaire en tant que partie du joyau heroku pour aider à la poussée, et le maître est simplement la branche génoise que vous poussez. Le git sait où pousser en raison de la création d’une application heroku qui est automatiquement configurée, 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 votre nouvelle application avec git remote add heroku [email protected]:your-application-15.git

9
Will Ayd

Tout comme vous, j'ai également eu du mal à comprendre ces choses sérieuses entre git et heroku et j'étais confus aussi. Mais maintenant, j'ai un peu de clarté pour pouvoir répondre à votre question en bref.

En supposant que vous avez configuré git dans le répertoire de votre 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éférentiels 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 branche principale de votre référentiel d'origine vers la branche principale du référentiel heroku

Reste que tous les détails sont déjà partagés dans d’autres réponses, ne voulez donc pas répéter. Donc, ceci est juste une réponse courte par ma compréhension. J'espère que ça aide.

1
Sameer