Cách liên kết thư mục với ứng dụng Heroku hiện có


815

Tôi có một ứng dụng Rails hiện có trên GitHub và được triển khai trên Heroku. Tôi đang cố gắng thiết lập một máy phát triển mới và đã sao chép dự án từ kho lưu trữ GitHub của tôi. Tuy nhiên, tôi bối rối không biết làm cách nào để liên kết thư mục này với Heroku. Ban đầu, tôi đã sử dụng heroku createlệnh, nhưng rõ ràng tôi không muốn làm điều đó lần này vì nó sẽ tạo ra một thể hiện Heroku khác.

Câu trả lời:


1243

Heroku liên kết các dự án của bạn dựa trên herokuđiều khiển từ xa (và một vài tùy chọn khác, xem bản cập nhật bên dưới). Để thêm điều khiển Heroku của bạn làm điều khiển từ xa trong kho lưu trữ hiện tại của bạn, hãy sử dụng lệnh sau:

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

nơi projectlà tên của dự án Heroku của bạn (giống như các project.heroku.comtên miền phụ). Khi bạn đã thực hiện xong, bạn có thể sử dụng các heroku xxxxlệnh (giả sử bạn đã cài đặt Heroku Toolbelt ) và có thể chuyển sang Heroku như bình thường thông qua git push heroku master. Là một phím tắt, nếu bạn đang sử dụng công cụ dòng lệnh, bạn có thể nhập:

heroku git:remote -a project

nơi, một lần nữa, projectlà tên của dự án Heroku của bạn (cảm ơn, Đại tá Panic ). Bạn có thể đặt tên cho Git từ xa bất cứ điều gì bạn muốn bằng cách vượt qua -r remote_name.

[Cập nhật]

Như Ben đã đề cập trong các bình luận, điều khiển từ xa không cần đặt tên herokucho các lệnh gem hoạt động. Tôi đã kiểm tra nguồn và có vẻ như nó hoạt động như thế này:

  1. Nếu bạn chỉ định một tên ứng dụng thông qua --apptùy chọn (ví dụ heroku info --app myapp), nó sẽ sử dụng ứng dụng đó.
  2. Nếu bạn chỉ định tên từ xa Git thông qua --remotetùy chọn (ví dụ heroku info --remote production), nó sẽ sử dụng ứng dụng được liên kết với điều khiển từ xa Git đó.
  3. Nếu bạn chỉ định không có tùy chọn và bạn đã heroku.remoteđặt trong tệp cấu hình Git của mình, nó sẽ sử dụng ứng dụng được liên kết với điều khiển từ xa đó (ví dụ: để đặt điều khiển từ xa mặc định thành "sản xuất" sử dụng git config heroku.remote productiontrong kho lưu trữ của bạn và Heroku sẽ chạy git config heroku.remoteđể đọc giá trị của cài đặt này)
  4. Nếu bạn chỉ định không có tùy chọn, đá quý không tìm thấy cấu hình trong .git/configtệp của bạn và đá quý chỉ tìm thấy một điều khiển từ xa trong điều khiển từ xa Git có "heroku.com" trong URL, nó sẽ sử dụng điều khiển từ xa đó.
  5. Nếu không có cái nào trong số này hoạt động, nó sẽ báo lỗi cho bạn chuyển qua --applệnh của bạn.

Liên kết đến "nguồn", ở trên, không hoạt động. Có thể thử trang này: devcenter.heroku.com/articles/USE-the-cli - mặc dù tôi nghĩ rằng tài liệu ở đó là không đủ.
Purplejquet

1
Nếu bạn cố gắng sử dụng heroku git:remotephương pháp này, hãy kiểm tra xem bạn đang sử dụng công cụ heroku toolbelt cli và bạn không có viên ngọc heroku nào vẫn được cài đặt trên hệ thống của bạn (có vẻ như nó không hoạt động với tôi với những viên đá quý cũ).
Pierre-Adrien Buisson

3
Ngoài ra, đối với nhiều nhánh heroku, bạn có thể sử dụng $ git config heroku.remote <appname>để đặt ứng dụng mặc định để bạn có thể sử dụng các lệnh đầu cuối cho ứng dụng đó.
Sheharyar

1
nếu sử dụng http tức là heroku loginđiều khiển từ xa có dạnghttps://git.heroku.com/project-name.git
tối đa pleaner

1
Lưu ý: Heroku hiện mô tả nó trong tổng quan dự án: Điều hướng đến dashboard.heroku.com , nhấp vào ứng dụng của bạn, sau đó chuyển sang tab "triển khai" và chọn phương thức triển khai "Heroku git" (được chọn theo mặc định). Sau đó, bạn sẽ nhận được hướng dẫn về cách kết nối thư mục / git hiện có với Heroku.
tiện dụng

230

Các Heroku CLI có một phím tắt dễ dàng cho việc này. Đối với một ứng dụng có tên 'gió rơi-1624':

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

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


1
! Resource not found
Green

1
Bạn có thể đặt tên cho điều khiển từ xa bất cứ điều gì bạn muốn bằng cách vượt qua-r other_remote_name
MasterScrat

2
Đây vẫn là cách chính xác để thực hiện ngay cả khi bạn đã kết nối trực tiếp ứng dụng Heroku của mình với GitHub. Lưu ý rằng nó sẽ không ghi đè từ xa "nguồn gốc" của bạn; thay vào đó, nó tạo ra một "heroku" từ xa.
Seth

144

Đừng quên, nếu bạn cũng ở trên một máy mà trước đó bạn chưa thiết lập heroku

heroku keys:add

Hoặc bạn sẽ không thể đẩy hoặc kéo đến repo.


3
Ồ vâng! Điều đó cũng giúp tôi. Tôi đã có một ứng dụng nơi chúng tôi bắt đầu cơ bản, sau đó chia "heroku" thành "dàn dựng" và "sản xuất". Vì vậy, tôi đã làm git remote add staging git@staging.xx:yy.gitgit remote add production git@production.xx:yy.git- nhưng điều đó là không đủ. Khi tôi cố gắng thực hiện git push staging master(hoặc sản xuất), tôi sẽ nhận được "Quyền bị từ chối (khóa công khai). Gây tử vong: Đầu từ xa bị treo bất ngờ". Điều gì đã sửa lỗi đó là để làm heroku keys:addnhư Ghoti đề cập.
Purplejquet

8

Hai điều cần chú ý khi thiết lập Hệ thống triển khai mới cho Ứng dụng cũ

1. Để kiểm tra quyền truy cập ứng dụng của bạn vào Heroku (đặc biệt là ứng dụng)

heroku apps

nó sẽ liệt kê các ứng dụng bạn có quyền truy cập nếu bạn thiết lập lần đầu tiên, có lẽ bạn cần phải

heroku keys:add

2. Sau đó, thiết lập từ xa git của bạn

Đối với ứng dụng Heroku đã được tạo, bạn có thể dễ dàng thêm một điều khiển từ xa vào kho lưu trữ cục bộ của mình bằng heroku git: remotelệnh. Tất cả bạn cần là tên ứng dụng Heroku của bạn:

heroku git:remote -a appName

bạn cũng có thể đổi tên điều khiển từ xa bằng lệnh đổi tên git từ xa:

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

sau đó Bạn có thể sử dụng lệnh git remote để xác nhận rằng điều khiển từ xa đã được đặt cho ứng dụng của bạn

 git remote -v

4

Sử dụng nĩa của heroku

  1. Sử dụng lệnh "heroku fork" mới! Nó sẽ sao chép tất cả các môi trường và bạn phải cập nhật repo github sau!

    heroku fork -a sourceapp targetapp
    
  2. Nhân bản nó tại địa phương

    git clone git@heroku.com:youamazingapp.git
    
  3. Tạo một repo mới trên github và thêm nó

    git remote add origin https://github.com/yourname/your_repo.git
    
  4. Đẩy vào github

    git push origin master
    



1

cho kho lưu trữ hiện có

gõ vào thiết bị đầu cuối

$ heroku git: từ xa-một ví dụ

nhập mô tả hình ảnh ở đây

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.