Jak połączyć folder z istniejącą aplikacją Heroku


814

Mam istniejącą aplikację Railsową na GitHub i wdrożoną na Heroku. Próbuję skonfigurować nową maszynę programistyczną i sklonowałem projekt z mojego repozytorium GitHub. Jestem jednak zdezorientowany, jak połączyć ten folder z Heroku. Początkowo użyłem heroku createpolecenia, ale oczywiście nie chcę tego robić tym razem, ponieważ utworzy ono kolejną instancję Heroku.

Odpowiedzi:


1242

Heroku łączy twoje projekty w oparciu o herokugit remote (i kilka innych opcji, zobacz aktualizację poniżej). Aby dodać pilota Heroku jako pilota w bieżącym repozytorium, użyj następującego polecenia:

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

gdzie projectjest nazwa twojego projektu Heroku (taka sama jak project.heroku.comsubdomena). Gdy to zrobisz, możesz użyć heroku xxxxpoleceń (zakładając, że masz zainstalowany pasek narzędzi Heroku ) i możesz przesyłać do Heroku jak zwykle za pośrednictwem git push heroku master. Jako skrót, jeśli używasz narzędzia wiersza poleceń, możesz wpisać:

heroku git:remote -a project

gdzie znowu projectjest nazwa twojego projektu Heroku (dzięki, pułkowniku Panic ). Możesz nazwać pilota Git dowolną nazwą, przekazując -r remote_name.

[Aktualizacja]

Jak wspomniał Ben w komentarzach, pilot nie musi mieć nazwy heroku aby komendy klejnotów działały. Sprawdziłem źródło i wygląda na to, że działa tak:

  1. Jeśli podasz nazwę aplikacji za pomocą --app opcji (np. heroku info --app myapp), Będzie ona korzystać z tej aplikacji.
  2. Jeśli podasz zdalny Git nazwę za pomocą --remoteopcji (np. heroku info --remote production), Użyje ona aplikacji powiązanej z tym zdalnym Git.
  3. Jeśli nie określisz żadnej opcji i masz heroku.remote ustawisz w pliku konfiguracyjnym Git, użyje ona aplikacji powiązanej z tym pilotem (na przykład, aby ustawić domyślnego pilota na użycie „produkcyjne” git config heroku.remote productionw repozytorium, a Heroku uruchomi się, git config heroku.remoteaby odczytać wartość tego ustawienia)
  4. Jeśli nie określisz żadnej opcji, klejnot nie znajdzie żadnej konfiguracji w .git/configpliku, a klejnot znajdzie tylko jednego pilota w pilotach Git, który ma adres URL „heroku.com”, użyje tego pilota.
  5. Jeśli żadna z tych czynności nie zadziała, pojawi się błąd z poleceniem przejścia --appdo polecenia.

Link do „źródła” powyżej nie działa. Może wypróbuj tę stronę: devcenter.heroku.com/articles/using-the-cli - choć myślę, że dokument nie jest wystarczający.
Purplejacket

1
Jeśli spróbujesz użyć tej heroku git:remotemetody, sprawdź, czy używasz paska narzędzi heroku cli i czy nie masz jeszcze zainstalowanego w systemie żadnego klejnotu heroku (wygląda na to, że nie działało to dla mnie ze starymi klejnotami).
Pierre-Adrien Buisson

3
Ponadto w przypadku wielu oddziałów heroku możesz $ git config heroku.remote <appname>ustawić domyślną aplikację, aby móc używać poleceń terminalowych dla tej aplikacji.
Sheharyar

1
jeśli używasz http tj. heroku loginwtedy pilot ma postaćhttps://git.heroku.com/project-name.git
max pleaner

1
Uwaga: Heroku opisuje teraz to w przeglądzie projektu: Przejdź do dashboard.heroku.com , kliknij swoją aplikację, a następnie przejdź do karty „wdróż” i wybierz metodę wdrażania „Heroku git” (domyślnie zaznaczone). Następnie otrzymasz instrukcje, jak połączyć istniejący folder / git z Heroku.
przydatny

230

Heroku CLI ma łatwy skrót do tego. W przypadku aplikacji o nazwie „Fall-Wind-1624”:

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

Zobacz https://devcenter.heroku.com/articles/git#creating-a-heroku-remote


1
! Resource not found
Zielony

1
Możesz nazwać pilota -r other_remote_name
dowolnie,

2
Jest to nadal właściwy sposób, aby to zrobić, nawet jeśli podłączyłeś swoją aplikację Heroku bezpośrednio do GitHub. Pamiętaj, że nie zastąpi to pilota „pochodzenia”; zamiast tego tworzy pilota „heroku”.
Seth

144

Nie zapomnij, jeśli jesteś także na maszynie, na której wcześniej nie konfigurowałeś heroku

heroku keys:add

W przeciwnym razie nie będziesz w stanie przesuwać repozytorium ani naciskać go.


3
O tak! To mi też pomogło. Miałem aplikację, w której zaczęliśmy podstawową, a następnie rozwidliłem „heroku” na „inscenizację” i „produkcję”. Tak zrobiłem git remote add staging git@staging.xx:yy.giti git remote add production git@production.xx:yy.git- ale to nie wystarczyło. Kiedy próbowałem zrobić git push staging master(lub produkcję), dostaję komunikat „Odmowa zezwolenia (publickey). Fatal: Odległy koniec nieoczekiwanie się rozłączył”. Tym, co naprawiło ten błąd, było zrobienie heroku keys:addtego, o czym wspomniał Ghoti.
Purplejacket,

8

Dwie rzeczy, na które należy zwrócić uwagę podczas konfigurowania nowego systemu wdrażania dla starej aplikacji

1. Aby sprawdzić dostęp aplikacji do Heroku (zwłaszcza aplikacji)

heroku apps

wyświetli listę aplikacji, do których masz dostęp, jeśli skonfigurujesz po raz pierwszy, prawdopodobnie musisz

heroku keys:add

2. Następnie skonfiguruj pilota git

W przypadku już utworzonej aplikacji Heroku możesz łatwo dodać pilota do lokalnego repozytorium za pomocą heroku git: remotepolecenia. Wszystko czego potrzebujesz to nazwa aplikacji Heroku:

heroku git:remote -a appName

możesz również zmienić nazwę swoich pilotów za pomocą polecenia git remote rename:

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

następnie możesz użyć polecenia git remote, aby potwierdzić, że pilot został ustawiony dla Twojej aplikacji

 git remote -v

4

Użyj widelca heroku

  1. Użyj nowego polecenia „Heroku Fork”! Skopiuje całe środowisko i po tym musisz zaktualizować repozytorium github!

    heroku fork -a sourceapp targetapp
    
  2. Klonuj lokalnie

    git clone git@heroku.com:youamazingapp.git
    
  3. Utwórz nowe repo na github i dodaj je

    git remote add origin https://github.com/yourname/your_repo.git
    
  4. Naciskaj na github

    git push origin master
    



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.