ทำให้ Heroku ทำงานสาขา Git ที่ไม่ใช่ผู้เชี่ยวชาญ


182

ฉันมีโครงการที่โฮสต์บน Heroku และได้รับถึงจุดที่ฉันต้องการสร้างเซิร์ฟเวอร์ทดสอบสำรอง (ดังนั้นฉันสามารถทดสอบคนงาน Heroku โดยไม่ทำให้การผลิตยุ่งเหยิง)

ฉันได้ตั้งค่ารีโมท Heroku หลักของฉันที่ใช้ลำตัวและรีโมต Heroku-dev ซึ่งฉันต้องการรันสาขาสำรอง

ปัญหาของฉันคือว่าเนื่องจากสาขาสำรองของฉันไม่ใช่ผู้เชี่ยวชาญ Heroku จะไม่สร้างมันขึ้นมา

$ git push heroku-dev test
counting objects ...
...
Pushed to non-master branch, skipping build.
To git@heroku.com:example-dev.git
* [new branch]      test -> test

การเปลี่ยนบิลด์นี้เป็นโทไม่ใช่ตัวเลือกในขณะนี้ เห็นได้ชัดว่าทางเลือกหนึ่งคือการสร้าง repo git ใหม่ทั้งหมดซึ่งเป็นโคลนของสาขาการทดสอบของฉัน แต่นั่นไม่ได้เสียงที่เหมาะมาก

คำตอบ:


361

คุณสามารถผลักดันสาขาอื่นไปที่ Heroku โดยใช้ Git

git push heroku-dev test:master

สิ่งนี้จะผลักสาขาการทดสอบในท้องถิ่นของคุณไปยังสาขาหลักของรีโมท (บน Heroku)


12
แน่นอน - มันบันทึกไว้ด้วย: devcenter.heroku.com/articles/…
Jon Mountjoy

50
เมื่อคุณพร้อมที่จะกลับไปเรียนปริญญาโทคุณต้องทำgit push -f heroku master:master
Brian Armstrong

5
มีวิธีการปรับใช้โดยใช้สาขาที่ไม่ใช่หลักใน Heroku เพื่อให้ Heroku masterดั้งเดิมอยู่เพื่อส่งเสริมในภายหลังหรือไม่
Eric Walker

3
ไม่มี Heroku masterมักจะใช้ กรณีการใช้งานของคุณคืออะไร?
jordelver

5
@SDP บางสิ่งที่ฉันเคยทำในอดีตสำหรับการแก้ไขข้อบกพร่องของ Heroku คือส่งบางสิ่งไปยัง Heroku จากนั้น (หากไม่ได้ผล) ลองทำอย่างอื่นทำมันยอมรับ (กับgit commit --amend) ผลักไปที่ Heroku (ใช้-fธง) และทำซ้ำจนกว่าจะได้รับการแก้ไข เมื่อแก้ไขแล้วตรวจสอบให้แน่ใจว่าขั้นตอนสุดท้าย--amendเป็นการทำความสะอาดที่ดีด้วยข้อความที่สมเหตุสมผลแล้วไปยังสิ่งต่อไป ด้วยวิธีนี้คุณสามารถทดสอบสิ่งต่าง ๆ ได้ตลอดวันโดยไม่ต้องทำหลายอย่าง มันไม่สวย แต่ก็รับงานทำ :)
ไซมอน

3

ในกรณีของฉันเริ่มต้นหรือสาขาพื้นฐานคือการพัฒนาดังนั้นฉันใช้:

          git push heroku develop:master 

0

ในกรณีที่คอมไพล์ทดสอบ heroku-dev: master ไม่ทำงานให้คุณลองทดสอบ git push heroku: master จำชื่อ "test" ใน "test: master" เป็นชื่อของสาขาใหม่ที่คุณเปิด


-1

คุณจะต้องดึงสาขาระยะไกลก่อนจึงจะสามารถดันสาขาที่ไม่ใช่มาสเตอร์ได้

เรียกใช้คำสั่งต่อไปนี้ในที่เก็บท้องถิ่นของคุณ

git pull https://heroku:YOUR_HEROKU_API_KEY@git.heroku.com/YOUR_APP_NAME.git
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.