Подтвердить что ты не робот

Как "w20> push heroku master" знает, куда нажать и как нажать на другое репо?

При нажатии в репозиторий, размещенный на Heroku, необходимо выполнить следующую команду:

git push heroku master

Что означают heroku и master в этой команде? Как git знает, куда нажать? (путь git)

Кроме того, я не знал, что могу использовать heroku rename для переименования приложения, поэтому раньше, скажем, я использовал имя приложения trytryheroku и теперь использую heroku create real-thing, но если я нажимаю, он все равно толкает к trytryheroku... есть ли способ подтолкнуть к реальности вместо этого?

4b9b3361

Ответ 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

Остальные детали уже поделены в других ответах, поэтому не хочу повторяться. Так что это всего лишь краткий ответ в моем понимании. Надеюсь, это поможет.