ЧАСТЬ 1: «Откуда git знает, куда нажимать?»
Перед выполнением вышеупомянутой команды:
$ git push heroku master
Всегда есть несколько других шагов: установка Git и Heroku, создание локального репозитория Git, регистрация на heroku, вход в heroku через командную строку, создание дескриптора heroku для точки хостинга ( объяснено в ЧАСТЬ 2 )
1. Локальный репозиторий Git:
$ 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. Иметь регистрацию (ed) для Heroku и войти через командную строку:
$ 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
Итак, запустив $ git push heroku master
, вы отправили код / приложение в Heroku.
ЧАСТЬ 2: но что обозначают heroku и master ?
Это скорее вопрос Git, чем Heroku - Heroku - это хостинговая платформа, которая зависит от Git (распределенной системы контроля версий) для развертывания.
Основная концепция «push» - это выталкивание некоторой вещи (файл, приложение, ..), которую мы имеем локально (на нашей рабочей машине), в другое место, в данном случае в удаленный репозиторий (удаленная машина).
В Git перед использованием push мы создаем удаленный (дескриптор), который действует как ссылка на удаленный репозиторий (полный URL), мы делаем это с помощью следующей команды:
$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>
Базовая структура команды push:
$ git push <remote-name> <branch>
Таким образом, $ git push heroku master
фактически передает ваш код / приложение / файл (из какого-то локального репозитория Git) в удаленное хранилище 'heroku'.
интересно, когда этот пульт 'heroku' был создан, он был добавлен, когда вы выполнили $ 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
Обратите внимание на последнюю строку " Добавлена Git Remote Heroku ".
, чтобы сделать это более понятным, вот команда Git для проверки / вывода всех пультов:
$ git remote -v
отобразит что-то похожее на следующее
$ git remote -v
heroku git@heroku.com:somerepo.git (fetch)
heroku git@heroku.com:somerepo.git (push)
Таким образом, мы можем предположить, что следующая команда была выполнена (неявно) где-то, когда вы создали $ heroku для создания , следовательно, создав геройку, удаленную для некоторого репозитория heroku (url) *
$ git remote add heroku git@heroku.com:somerepo.git