Как "w20> push heroku master" знает, куда нажать и как нажать на другое репо?
При нажатии в репозиторий, размещенный на Heroku, необходимо выполнить следующую команду:
git push heroku master
Что означают heroku
и master
в этой команде? Как git знает, куда нажать? (путь git)
Кроме того, я не знал, что могу использовать heroku rename
для переименования приложения, поэтому раньше, скажем, я использовал имя приложения trytryheroku и теперь использую heroku create real-thing
, но если я нажимаю, он все равно толкает к trytryheroku... есть ли способ подтолкнуть к реальности вместо этого?
Ответы
Ответ 1
Часть "heroku" - это имя удаленного устройства, которое вы установили, - когда вы создаете приложение heroku при первом создании удаленного вызова git "heroku" , указывающего на ваше приложение, - если вы наберете " remote 'в вашем проекте он покажет вам удаленные конечные точки. Ничто не заставляет вас использовать "heroku" в качестве имени пульта дистанционного управления - если у вас есть несколько сред для вашего приложения, у вас могут быть, например, производственные модели или постановка.
"Мастер" - это локальная ветка, которую вы хотите нажать на пульт. Если вы работаете в ветке функций, например, с именем "myfeature", и вы хотите развернуть это на герою, вы бы сделали;
git push heroku myfeature:master
дополнительный: здесь мастер говорит, что нажимаем мою локальную ветвь myfeature
в ветвь master
на удаленном компьютере - note: heroku может развертываться только из главной ветки.
Если вы переименуете приложение, изменится удаленный URL-адрес heroku git - сделайте git remote -v
, который покажет вам репозиторий git, который использует ваше приложение, вам, вероятно, потребуется удалить старый источник героя и добавить новый, git remote rm heroku
, затем git remote add heroku [email protected]
Чтобы узнать больше о git, я бы рекомендовал эту книгу
Ответ 2
ЧАСТЬ 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: [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
Итак, запустив $ git push heroku master
, вы переместили код/приложение в Heroku.
ЧАСТЬ 2: но что указывает героика и мастер?
Это скорее вопрос git, чем Heroku - Heroku - платформа для хостинга, которая зависит от git (Distributed Version Control System) для развертывания.
Основная концепция "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/ | [email protected]:stark-fog-398.git
Git remote heroku added
Обратите внимание на последнюю строку " Git удаленный герой добавлен".
чтобы сделать это более понятным, здесь команда git для проверки/вывода всех пультов:
$ git удаленный -v
отобразит что-то похожее на следующие
$ git remote -v
heroku [email protected]:somerepo.git (fetch)
heroku [email protected]:somerepo.git (push)
Таким образом, мы можем предположить, что некоторая команда выполнялась (неявно) где-то, когда вы делали $heroku create, следовательно, создавая удаленный герой для какого-то героя repo (url) *
$ git remote add heroku [email protected]:somerepo.git
Ответ 3
heroku требуется как часть героя gem, чтобы помочь с нажатием, а master - это только ветвь git, которую вы нажимаете. git знает, куда нажать, потому что вы создаете приложение heroku, push автоматически настраивается, что вы можете увидеть, набрав
git remote -v
если вам нужно изменить это, удалите его с помощью git remote rm heroku
, а затем добавьте новое приложение yoru с git remote add heroku [email protected]:your-application-15.git
Ответ 4
Так же, как и вы, я также изо всех сил пытался понять эти мелкие детали из мерзости и героки, и я тоже был сбит с толку. Но теперь у меня есть немного ясности, чтобы ответить на ваш вопрос вкратце.
Предполагая, что у вас есть git setup в вашем каталоге проекта. В папке вашего проекта есть скрытая папка .git, которая содержит файл с именем "config", в котором хранится вся информация об удаленных устройствах.
Remotes - это ваши индивидуальные репозитории, названные индивидуально, такие как origin, heroku, staging, prod и т.д.
В вашей команде heroku обозначает репозиторий, который вы добавили в проект heroku. Откройте файл конфигурации, вы увидите URL.
Когда вы запускаете
git push heroku master
вы говорите git о том, чтобы перенести вашу текущую исходную главную ветку хранилища в главную ветку хранилища heroku
Остальные детали уже поделены в других ответах, поэтому не хочу повторяться. Так что это всего лишь краткий ответ в моем понимании. Надеюсь, это поможет.
Ответ 5
Другие ответы отлично подходят для первой половины вашего вопроса...
Здесь краткий ответ ко второй половине.
через https://devcenter.heroku.com/articles/renaming-apps#updating-git-remotes
git remote rm heroku
heroku git:remote -a name-of-heroku-app