Làm cho Heroku chạy chi nhánh Git không chính chủ


182

Tôi có một dự án được lưu trữ trên Heroku và đến lúc tôi muốn tạo một máy chủ thử nghiệm thay thế (vì vậy tôi có thể kiểm tra các nhân viên của Heroku mà không làm hỏng quá trình sản xuất).

Tôi đã thiết lập điều khiển Heroku chính của mình chạy thân cây và điều khiển từ xa Heroku mà tôi muốn chạy một nhánh thay thế.

Vấn đề của tôi là vì chi nhánh thay thế của tôi không phải là chủ, Heroku sẽ không xây dựng nó.

$ 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

Chuyển đổi bản dựng này thành bản gốc không phải là một tùy chọn tại thời điểm này. Rõ ràng một lựa chọn là tạo ra một repo git hoàn toàn mới, đó là bản sao của nhánh thử nghiệm của tôi, nhưng điều đó không có vẻ rất lý tưởng.

Câu trả lời:


361

Bạn có thể đẩy một nhánh thay thế đến Heroku bằng Git.

git push heroku-dev test:master

Điều này đẩy nhánh thử nghiệm cục bộ của bạn đến nhánh chính của điều khiển từ xa (trên Heroku).


12
Thật vậy - nó cũng được ghi lại: devcenter.heroku.com/articles/ từ
Jon Mountjoy

50
Cũng đáng chú ý, khi bạn sẵn sàng trở lại thành thạo, bạn cần phải làmgit push -f heroku master:master
Brian Armstrong

5
Có cách nào để triển khai bằng cách sử dụng một nhánh không chính chủ trên Heroku, để giữ Heroku masternguyên sơ cho lần quảng bá sau này không?
Eric Walker

3
Không, Heroku luôn sử dụng master. Trường hợp sử dụng của bạn là gì?
jordelver

5
@SDP Một cái gì đó tôi đã làm trong quá khứ để gỡ lỗi Heroku là cam kết một cái gì đó, đẩy nó đến Heroku, sau đó (nếu nó không hoạt động) hãy thử một cái gì đó khác, cam kết (với git commit --amend), đẩy nó đến Heroku (sử dụng -fcờ) và lặp lại cho đến khi cố định. Khi nó đã được sửa, hãy đảm bảo rằng trận chung kết --amendlà một cam kết sạch đẹp với một thông điệp hợp lý và sau đó chuyển sang điều tiếp theo. Bằng cách đó bạn có thể kiểm tra mọi thứ suốt cả ngày mà không cần nhiều cam kết. Nó không đẹp nhưng nó hoàn thành công việc :)
Simon

2

Trong trường hợp của tôi, nhánh mặc định hoặc cơ sở đã được phát triển , vì vậy tôi đã sử dụng:

          git push heroku develop:master 

0

Trong trường hợp git đẩy heroku-dev test: master không hiệu quả với bạn, hãy thử git đẩy heroku test: master. Hãy nhớ "test" trong "test: master" là tên của nhánh mới mà bạn đang ở.


-1

Bạn sẽ cần phải kéo nhánh từ xa trước khi bạn có thể đẩy nhánh không chính.

Chạy lệnh sau trong kho lưu trữ cục bộ của bạn

git pull https://heroku:YOUR_HEROKU_API_KEY@git.heroku.com/YOUR_APP_NAME.git
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.