ЧАСТЬ 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 create , следовательно, создавая удаленный сервер heroku для некоторого репозитория heroku (url) *
$ git remote add heroku git@heroku.com:somerepo.git
git remote set-url <remote-name> <new-url>
(Git 1.7.0 и новее), илиgit config remote.<remote-name>.url <new-url>
, или путем редактирования.git/config
(возможно, черезgit config -e
Git 1.6.3 и новее).