PARTE 1: "Come fa git a sapere dove spingere?"
Prima di eseguire il comando sopra indicato:
$ git push heroku master
Ci sono sempre pochi altri passaggi da eseguire: installazione di Git e Heroku, creazione di un repository Git locale, registrazione a heroku, accesso a heroku tramite riga di comando, creazione dell'handle heroku al punto di hosting ( spiegato nella PARTE 2 )
1. Un repository Git locale:
$ 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. Registrati (ed) per Heroku e accedi tramite riga di comando:
$ heroku login
Enter your Heroku credentials.
Email: user@example.com
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
Quindi eseguendo $ git push heroku master
hai inviato il codice / l'app a Heroku.
PARTE 2: ma cosa indicano heroku e master ?
È più una questione di Git che di Heroku: Heroku è una piattaforma di hosting, che dipende da Git (Distributed Version Control System) per la distribuzione.
Il concetto di base di "push" è spingere qualcosa (file, app, ..) che abbiamo localmente (nella nostra macchina funzionante) da qualche altra parte, in questo caso in un repository remoto (macchina remota).
In Git prima di utilizzare 'push' creiamo un remoto (handle) che funge da riferimento a un repository remoto (URL completo), lo facciamo utilizzando il seguente comando:
$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>
La struttura di base del comando 'push' è:
$ git push <remote-name> <branch>
Quindi in $ git push heroku master
realtà sta spingendo il tuo codice / app / file (da un repository Git locale) a un repository remoto "heroku".
chiedendomi quando è stato creato questo telecomando "heroku", è stato aggiunto quando hai eseguito $ heroku create
$ heroku create
Creating stark-fog-398... done, stack is cedar
http://stark-fog-398.herokuapp.com/ | git@heroku.com:stark-fog-398.git
Git remote heroku added
Notare l'ultima riga " Git remote heroku added ".
per renderlo più chiaro, ecco un comando Git per controllare / visualizzare tutti i telecomandi: $ git remote -v mostrerà qualcosa di simile al seguente
$ git remote -v
heroku git@heroku.com:somerepo.git (fetch)
heroku git@heroku.com:somerepo.git (push)
Quindi possiamo supporre che il seguente comando sia stato eseguito (implicitamente) da qualche parte, quando hai creato $ heroku , quindi creando il telecomando heroku in qualche repository heroku (url) *
$ git remote add heroku git@heroku.com:somerepo.git
git remote set-url <remote-name> <new-url>
(Git 1.7.0 e versioni successive), ogit config remote.<remote-name>.url <new-url>
o modificando.git/config
(possibilmente tramitegit config -e
Git 1.6.3 e versioni successive).