Cara menautkan folder dengan aplikasi Heroku yang ada


815

Saya memiliki aplikasi Rails yang ada di GitHub dan digunakan di Heroku. Saya mencoba menyiapkan mesin pengembangan baru dan telah mengkloning proyek dari repositori GitHub saya. Namun, saya bingung bagaimana cara menautkan folder ini ke Heroku. Awalnya, saya menggunakan heroku createperintah, tetapi jelas saya tidak ingin melakukannya kali ini karena akan membuat contoh Heroku lain.

Jawaban:


1243

Heroku menautkan proyek Anda berdasarkan herokugit remote (dan beberapa opsi lain, lihat pembaruan di bawah). Untuk menambahkan remote Heroku Anda sebagai remote di repositori Anda saat ini, gunakan perintah berikut:

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

di mana projectnama proyek Heroku Anda (sama dengan project.heroku.comsubdomain). Setelah melakukannya, Anda dapat menggunakan heroku xxxxperintah (dengan asumsi Anda telah menginstal Heroku Toolbelt ), dan dapat mendorong ke Heroku seperti biasa melalui git push heroku master. Sebagai pintasan, jika Anda menggunakan alat baris perintah, Anda dapat mengetik:

heroku git:remote -a project

di mana, sekali lagi, projectadalah nama proyek Heroku Anda (terima kasih, Kolonel Panic ). Anda dapat memberi nama Git remote apa pun yang Anda inginkan dengan melewati -r remote_name.

[Memperbarui]

Seperti yang disebutkan oleh Ben dalam komentar, remote tidak perlu diberi nama herokuuntuk perintah gem untuk bekerja. Saya memeriksa sumbernya , dan tampaknya ini berfungsi seperti ini:

  1. Jika Anda menentukan nama aplikasi melalui --appopsi (misalnya heroku info --app myapp), itu akan menggunakan aplikasi itu.
  2. Jika Anda menentukan nama jarak jauh Git melalui --remoteopsi (misalnya heroku info --remote production), itu akan menggunakan aplikasi yang terkait dengan jarak jauh Git.
  3. Jika Anda tidak menentukan opsi dan Anda telah heroku.remotemengatur dalam file konfigurasi Git Anda, itu akan menggunakan aplikasi yang terkait dengan remote itu (misalnya, untuk mengatur remote default untuk penggunaan "produksi" git config heroku.remote productiondalam repositori Anda, dan Heroku akan berjalan git config heroku.remoteuntuk membaca nilai tersebut. pengaturan ini)
  4. Jika Anda tidak menentukan opsi, gem tidak menemukan konfigurasi di .git/configfile Anda , dan gem hanya menemukan satu remote di remote Git Anda yang memiliki "heroku.com" di URL, itu akan menggunakan remote itu.
  5. Jika tidak ada yang berhasil, ini menimbulkan kesalahan yang memerintahkan Anda untuk meneruskan --appperintah Anda.

Tautan ke "sumber" di atas, tidak berfungsi. Mungkin coba halaman ini: devcenter.heroku.com/articles/using-the-cli - walaupun saya pikir dokumen di sana tidak cukup.
Purplejacket

1
Jika Anda mencoba menggunakan heroku git:remotemetode ini, periksa apakah Anda menggunakan heroku toolbelt cli, dan Anda tidak memiliki permata heroku yang masih terpasang di sistem Anda (sepertinya itu tidak bekerja untuk saya dengan permata lama).
Pierre-Adrien Buisson

3
Juga, untuk beberapa cabang heroku yang dapat Anda gunakan $ git config heroku.remote <appname>untuk mengatur aplikasi default sehingga Anda dapat menggunakan perintah terminal untuk aplikasi itu.
Sheharyar

1
jika menggunakan http yaitu heroku loginmaka remote adalah dalam bentukhttps://git.heroku.com/project-name.git
max pleaner

1
Catatan: Heroku sekarang menjelaskannya dalam ikhtisar proyek: Navigasikan ke dashboard.heroku.com , klik aplikasi Anda, lalu beralih ke tab "deploy" dan pilih metode penyebaran "Heroku git" (dipilih secara default). Kemudian, Anda akan mendapatkan instruksi tentang cara menghubungkan folder / git yang ada dengan Heroku.
berguna

230

The Heroku CLI memiliki shortcut yang mudah untuk ini. Untuk aplikasi bernama 'fall-wind-1624':

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

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


1
! Resource not found
Hijau

1
Anda dapat memberi nama remote apa saja yang Anda inginkan dengan melewati-r other_remote_name
MasterScrat

2
Ini masih cara yang benar untuk melakukannya bahkan jika Anda telah menghubungkan aplikasi Heroku langsung ke GitHub. Catatan itu tidak akan menimpa remote "asal" Anda; itu menciptakan remote "heroku".
Seth

144

Jangan lupa, jika Anda juga menggunakan mesin yang belum pernah menyiapkan heroku sebelumnya

heroku keys:add

Atau Anda tidak akan bisa mendorong atau menarik repo.


3
Oh ya! Itu juga membantu saya. Saya memiliki aplikasi di mana kami mulai dasar, kemudian membagi dua "heroku" menjadi "pementasan" dan "produksi". Jadi saya lakukan git remote add staging git@staging.xx:yy.gitdan git remote add production git@production.xx:yy.git- tetapi itu tidak cukup. Ketika saya mencoba untuk melakukan git push staging master(atau produksi) saya akan mendapatkan "Izin ditolak (publickey). Fatal: Ujung remote tiba-tiba menutup". Apa yang memperbaiki kesalahan itu adalah heroku keys:addseperti yang disebutkan Ghoti.
Purplejacket

8

Dua hal yang harus diperhatikan saat menyiapkan Sistem penempatan baru untuk Aplikasi lama

1. Untuk memeriksa akses aplikasi Anda ke Heroku (terutama aplikasi)

heroku apps

itu akan mencantumkan aplikasi yang memiliki akses jika Anda mengatur untuk pertama kalinya, Anda mungkin perlu

heroku keys:add

2. Kemudian atur remote git Anda

Untuk aplikasi Heroku yang sudah dibuat, Anda dapat dengan mudah menambahkan remote ke repositori lokal Anda dengan heroku git: remoteperintah. Yang Anda butuhkan hanyalah nama aplikasi Heroku Anda:

heroku git:remote -a appName

Anda juga dapat mengganti nama remote Anda dengan perintah git remote rename:

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

maka Anda dapat menggunakan perintah git remote untuk mengonfirmasi bahwa kendali jarak jauh telah diatur untuk aplikasi Anda

 git remote -v

4

Gunakan garpu heroku

  1. Gunakan perintah "heroku fork" baru! Ini akan menyalin semua lingkungan dan Anda harus memperbarui repo github setelah!

    heroku fork -a sourceapp targetapp
    
  2. Kloning lokal

    git clone git@heroku.com:youamazingapp.git
    
  3. Buat repo baru di github dan tambahkan

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

    git push origin master
    



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.