Tôi đã có một dự án mà tôi đang triển khai cho Heroku . Cây mã nguồn bao gồm một loạt các tệp mp3 (trang web sẽ dành cho một dự án ghi âm mà tôi đã tham gia rất nhiều).
Tôi muốn đưa mã nguồn cho nó lên GitHub , nhưng GitHub có giới hạn 300 MB trên tài khoản miễn phí của họ. Tôi không muốn sử dụng 50 MB giới hạn của mình cho một loạt các tệp mp3. Rõ ràng, tôi có thể thêm chúng vào .gitignore
tập tin để tránh chúng khỏi repo của tôi.
Tuy nhiên, tôi triển khai để Heroku sử dụng git push heroku
. Các tệp mp3 phải có mặt trong nhánh tôi đẩy tới Heroku để chúng được triển khai.
Lý tưởng nhất là tôi muốn .gitignore
các tệp mp3 trong nhánh chính cục bộ của mình để khi tôi đẩy tệp đó sang GitHub, các tệp mp3 không được bao gồm. Sau đó, tôi sẽ giữ một chi nhánh sản xuất tại địa phương có các bản mp3 được cam kết thay vì bỏ qua. Để triển khai, tôi sẽ hợp nhất chủ vào sản xuất, rồi đẩy chi nhánh sản xuất sang Heroku.
Tôi không thể làm điều này để làm việc đúng.
Đây là một ví dụ về những gì tôi đang cố gắng làm ...
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
Tại thời điểm này, Foo.ignored bị bỏ qua trong nhánh chính của tôi, nhưng nó vẫn hiện diện, vì vậy dự án của tôi có thể sử dụng nó.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Bây giờ tôi đã có một chi nhánh với các tệp này được cam kết, như tôi muốn. Tuy nhiên, khi tôi quay trở lại chi nhánh chính của mình, Foo.ignored đã biến mất.
Bất cứ ai có bất kỳ đề nghị cho một cách tốt hơn để thiết lập này?
Chỉnh sửa: chỉ để làm rõ, tôi muốn các tệp mp3 có mặt ở cả hai nhánh để khi tôi chạy trang cục bộ (sử dụng một trong hai nhánh) thì trang sẽ hoạt động. Tôi chỉ muốn các tệp bị bỏ qua trong một nhánh vì vậy khi tôi đẩy lên GitHub thì chúng cũng không được đẩy. Thông thường, nhánh với các tập tin bị bỏ qua, các tập tin biến mất.