2010-07-13 30 views
6

Tôi có ứng dụng Ruby on Rails mà tôi đang cố gắng lưu trữ trên Heroku. Tôi cũng muốn sử dụng kho lưu trữ công cộng (miễn phí) của GitHub để theo dõi các thay đổi. Tôi cần phải kiểm tra trong một tập tin có chứa mật khẩu để repo từ xa Heroku, nhưng bỏ qua các tập tin vì vậy tôi không kiểm tra nó vào GitHub. Có cách nào tôi có thể thêm các tập tin vào một repo, và bỏ qua nó từ khác?Git: Làm thế nào để bỏ qua một tập tin từ một repo và thêm nó vào một repo khác?

Cập nhật: Tôi đã tìm ra cách giải quyết vấn đề về lưu trữ mật khẩu ngay lập tức trong Heroku bằng cách sử dụng Heroku Config vars. Tuy nhiên, tôi vẫn quan tâm đến khái niệm đẩy một tệp vào chỉ các repo được chỉ định.

+0

Tôi không quen với Heroku, nhưng bạn không thể chỉ sao chép tệp theo cách thủ công vào máy chủ Heroku và để nó hoàn toàn kiểm soát phiên bản? –

+0

để "triển khai" vào Heroku, bạn thêm Heroku git repo của bạn làm điều khiển từ xa và chạy "git push heroku master" để đẩy các thay đổi của bạn vào Heroku. Vì vậy, nó cần phải được kiểm tra để đẩy tập tin vào Heroku. (hoặc ít nhất đây là sự hiểu biết của tôi) – Andrew

Trả lời

1

gì bạn có thể làm là để thêm vào GitHub repo một kịch bản smudge (filter driver) mà sẽ:

  • thử nghiệm cho hiện tại của một chi nhánh riêng
  • kiểm tra các tập tin mật khẩu từ chi nhánh

alt text

Kể từ đó chi nhánh tư nhân sẽ chỉ tồn tại trên repo Heroku, kịch bản smudge woul không làm gì ở phía repo GitHub.
Nhưng một khi được đẩy về phía Heroku, nếu móc đang kiểm tra thư mục đang hoạt động trên máy chủ Heroku của mình, thì trình điều khiển bộ lọc đó sẽ khởi động và tạo tệp nhạy cảm.

Điều đó đang được nói, tốt nhất cho tệp nhạy cảm như vậy là không bao giờ được phiên bản trong bất kỳ repo Git nào, mà được lưu trữ ở nơi khác.
Kịch bản smudge, thay vì kiểm tra một số nội dung repo Git (như một nhánh tư nhân) sau đó sẽ kiểm tra một repo bên ngoài (ssh ftp, repo Nexus, bất kỳ tham chiếu dữ liệu nào khác ngoài đó bạn chọn để lưu trữ các thông tin cá nhân) , trích xuất nội dung phù hợp và tạo tệp.

+0

Câu trả lời này giải thích cách sử dụng nhánh heroku riêng tư: http://stackoverflow.com/questions/3221657/how-can-i-upload-my-application-to-github- nhưng-loại bỏ-nhạy cảm-ủy quyền-thông tin/3223543 # 3223543 – igorw

+1

@ evil3: Tôi hiểu, nhưng tôi sẽ không tin tưởng một giải pháp liên quan đến "không bao giờ đẩy chi nhánh xxx để repo yyy". Nó sẽ làm việc ok, cho đến ngày hôm đó ... nơi nó được đẩy anyway (do nhầm lẫn). Tôi thực sự cảm thấy thoải mái hơn với bất kỳ loại thông tin nhạy cảm nào * bên ngoài * của bất kỳ repo Git nào. – VonC

2

Như VonC đã đề cập, đặt cược tốt nhất (và ít rủi ro nhất) là giữ thông tin cấu hình nhạy cảm trong Git và đặt chúng vào các biến môi trường trên máy chủ của bạn. Dưới đây là hướng dẫn làm thế nào để làm như vậy trên Heroku:

http://docs.heroku.com/config-vars

Xem thêm những câu hỏi liên quan.

Các vấn đề liên quan