Як пов’язати папку з існуючим додатком Heroku


814

У мене є наявна програма Rails на GitHub і розгорнута в Heroku. Я намагаюся створити нову розроблювальну машину і клонував проект із мого сховища GitHub. Однак мене бентежить питання про те, як пов’язати цю папку з Heroku. Спочатку я використовував heroku createкоманду, але явно не хочу цього робити цього разу, оскільки це створить інший екземпляр Heroku.

Відповіді:


1242

Heroku посилає ваші проекти на основі herokugit remote (та кілька інших варіантів, див. Оновлення нижче). Щоб додати пульт Heroku в якості віддаленого в поточному сховищі, скористайтеся такою командою:

git remote add heroku git@heroku.com:project.git

де projectназва вашого проекту Heroku (те саме, що і project.heroku.comпіддомен). Після цього ви можете використовувати heroku xxxxкоманди (якщо у вас встановлений Heroku Toolbelt ), і ви можете натиснути на Heroku як завжди через git push heroku master. Як ярлик, якщо ви використовуєте інструмент командного рядка, ви можете ввести:

heroku git:remote -a project

де, знову ж таки, projectназва вашого проекту Heroku (спасибі, полковник Паніка ). Ви можете назвати пульт Git все, що завгодно, передавши його -r remote_name.

[Оновлення]

Як згадував Бен у коментарях, пульт не повинен називати herokuкоманди дорогоцінних каменів для роботи. Я перевірив джерело , і, схоже, воно працює так:

  1. Якщо вказати ім’я програми через --appопцію (наприклад heroku info --app myapp), він використовуватиме цей додаток.
  2. Якщо ви вкажете віддалене ім'я Git через --remoteпараметр (наприклад heroku info --remote production), він використовуватиме додаток, пов’язаний із цим віддаленим Git.
  3. Якщо ви не вказали жодної опції, і ви heroku.remoteвстановили у своєму конфігураційному файлі Git, він використовуватиме додаток, пов’язаний із цим віддаленим пристроєм (наприклад, для встановлення віддаленого за замовчуванням «виробничого» використання git config heroku.remote productionу вашому сховищі, і Heroku запуститься, git config heroku.remoteщоб прочитати значення цього налаштування)
  4. Якщо ви не вказали жодної опції, дорогоцінний камінь не знайде конфігурації у вашому .git/configфайлі, і дорогоцінний камінь знайде лише один пульт дистанційного керування у ваших віддалених файлах Git, який має "heroku.com" у URL-адресі, він буде використовувати цей пульт.
  5. Якщо нічого з цього не працює, виникає помилка, доручаючи перейти --appдо вашої команди.

Посилання на "джерело" вище не працює. Можливо, спробуйте цю сторінку: devcenter.heroku.com/articles/using-the-cli - хоча я думаю, що документа там недостатньо.
Purplejacket

1
Якщо ви спробуєте скористатися heroku git:remoteметодом, перевірте, чи ви використовуєте затиск для інструментів heroku, і чи немає у вас ще жодної коштовності heroku, встановленої у вашій системі (схоже, це не працювало для мене зі старими дорогоцінними каменями).
П'єр-Адрієн Буйсон

3
Крім того, для декількох гілок heroku ви можете $ git config heroku.remote <appname>встановити програму за замовчуванням, щоб ви могли використовувати термінальні команди для цього додатка.
Шехаряр

1
якщо ви користуєтеся http, тобто heroku loginвіддалений має формуhttps://git.heroku.com/project-name.git
max pleaner

1
Примітка: Heroku тепер описує це в огляді проекту: Перейдіть до dashboard.heroku.com , натисніть додаток, а потім перейдіть на вкладку "розгорнути" та виберіть метод розгортання "Heroku git" (вибрано за замовчуванням). Потім ви отримаєте інструкції, як з'єднати існуючу папку / git з Heroku.
зручно

230

Heroku CLI має простий ярлик для цього. Для програми під назвою "pada-wind-1624":

$ heroku git:remote -a falling-wind-1624
Git remote heroku added.

Дивіться https://devcenter.heroku.com/articles/git#creating-a-heroku-remote


1
! Resource not found
Зелений

1
Ви можете назвати дистанційне все, що завгодно, проїхавши-r other_remote_name
MasterScrat

2
Це все-таки правильний спосіб зробити це, навіть якщо ви підключили додаток Heroku безпосередньо до GitHub. Зверніть увагу, що він не замінить ваш "вихідний" пульт; він створює натомість "герочку".
Сет

144

Не забувайте, якщо ви також знаходитесь на машині, де ви раніше не встановлювали heroku

heroku keys:add

Або ви не зможете натиснути або потягнути до репо.


3
О, так! Це мені теж допомогло. У мене був додаток, де ми почали базову, потім роздвоєну "герочку" на "постановку" та "виробництво". Так я git remote add staging git@staging.xx:yy.gitі зробив git remote add production git@production.xx:yy.git- але цього було недостатньо. Коли я намагався зробити git push staging master(або виготовити), я отримав би "Дозвіл відмовлено (publickey). Фатально: Віддалений кінець несподівано завис". Те, що виправило цю помилку, було робити, heroku keys:addяк згадує Гхоті.
Purplejacket

8

Дві речі, про які слід подбати під час налаштування нової системи розгортання для старого додатка

1. Щоб перевірити доступ свого додатка до Heroku (особливо програми)

heroku apps

він перелічить програми, до яких ви маєте доступ, якщо ви вперше налаштувались, можливо, вам доведеться

heroku keys:add

2. Потім встановіть пульт дистанційного керування

Для вже створеного додатка Heroku ви можете легко додати пульт до локального сховища за допомогою heroku git: remoteкоманди. Все, що вам потрібно, це ім’я програми Heroku:

heroku git:remote -a appName

ви також можете перейменовувати ваші віддалені пристрої за допомогою команди віддаленого перейменування git:

git remote rename heroku heroku-dev(you desired app name)

тоді Ви можете скористатися віддаленою командою git, щоб підтвердити, що для Вашого додатка встановлено пульт

 git remote -v

4

Використовуйте виделку heroku

  1. Використовуйте нову команду "heroku fork"! Це скопіює все середовище, і вам доведеться оновлювати github repo після!

    heroku fork -a sourceapp targetapp
    
  2. Клоніруйте його місцевим

    git clone git@heroku.com:youamazingapp.git
    
  3. Зробіть нове репо на github і додайте його

    git remote add origin https://github.com/yourname/your_repo.git
    
  4. Натисніть на github

    git push origin master
    



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.