ตอนที่ 1: "git รู้ได้อย่างไรว่าจะส่งไปที่ใด"
ก่อนดำเนินการคำสั่งดังกล่าวข้างต้น:
$ git push heroku master
มีขั้นตอนอื่น ๆ ในการดำเนินการอยู่เสมอ: การติดตั้ง Git และ Heroku, การสร้าง Git repo ในเครื่อง, การสมัครใช้งาน 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: user@example.com
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: แต่herokuกับmasterบ่งบอกอะไร?
เป็นคำถามเกี่ยวกับ Git มากกว่า Heroku - Heroku เป็นแพลตฟอร์มโฮสติ้งซึ่งขึ้นอยู่กับ Git (Distributed Version Control System) สำหรับการปรับใช้
แนวคิดพื้นฐานของ 'push' คือการผลักดันบางสิ่ง (ไฟล์, แอพ, .. ) ที่เรามีในเครื่อง (ในเครื่องที่ทำงานของเรา) ไปยังที่อื่นในกรณีนี้ไปยังที่เก็บระยะไกล (เครื่องระยะไกล)
ใน Git ก่อนที่จะใช้ 'push' เราจะสร้าง remote (handle) ซึ่งทำหน้าที่อ้างอิงไปยังที่เก็บระยะไกล (Complete 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 repo ในเครื่อง) ไปยัง 'heroku' ของ repo
สงสัยว่ารีโมต 'heroku' นี้ถูกสร้างขึ้นเมื่อใดจึงมีการเพิ่มเมื่อคุณดำเนินการสร้าง $ heroku
$ heroku create
Creating stark-fog-398... done, stack is cedar
http://stark-fog-398.herokuapp.com/ | git@heroku.com:stark-fog-398.git
Git remote heroku added
โปรดสังเกตบรรทัดสุดท้าย " Git remote heroku added "
เพื่อให้ชัดเจนยิ่งขึ้นนี่คือคำสั่ง Git เพื่อตรวจสอบ / เอาต์พุตรีโมททั้งหมด: $ git remote -v จะแสดงสิ่งที่คล้ายกับต่อไปนี้
$ git remote -v
heroku git@heroku.com:somerepo.git (fetch)
heroku git@heroku.com:somerepo.git (push)
ดังนั้นเราจึงสามารถสรุปได้ว่าคำสั่งต่อไปนี้ถูกเรียกใช้งาน (โดยปริยาย) ที่ไหนสักแห่งเมื่อคุณสร้าง $ herokuดังนั้นการสร้างรีโมต heroku ให้กับ repo heroku (url) *
$ git remote add heroku git@heroku.com:somerepo.git
git remote set-url <remote-name> <new-url>
(Git 1.7.0 ขึ้นไป) หรือgit config remote.<remote-name>.url <new-url>
หรือโดยการแก้ไข.git/config
(อาจเป็นไปได้git config -e
ใน Git 1.6.3 และใหม่กว่า)