Saya punya proyek yang saya gunakan untuk Heroku . Pohon kode sumber mencakup banyak file mp3 (situs web ini akan digunakan untuk proyek rekaman yang sangat saya ikuti).
Saya ingin meletakkan kode sumbernya di GitHub , tetapi GitHub memiliki batas 300 MB pada akun gratis mereka. Saya tidak ingin menggunakan 50 MB dari batas saya pada banyak file mp3. Jelas, saya bisa menambahkannya ke .gitignorefile untuk menjaga mereka dari repo saya.
Namun, saya menggunakan Heroku menggunakan git push heroku. File mp3 harus ada di cabang saya mendorong ke Heroku sehingga mereka bisa digunakan.
Idealnya, saya ingin .gitignorefile mp3 di cabang master lokal saya sehingga ketika saya mendorongnya ke GitHub, mp3 tidak termasuk. Maka saya akan menjaga cabang produksi lokal yang memiliki mp3 berkomitmen daripada diabaikan. Untuk menggunakan, saya akan menggabungkan master ke dalam produksi, dan kemudian mendorong cabang produksi ke Heroku.
Saya tidak bisa melakukan ini dengan benar.
Ini adalah contoh dari apa yang saya coba lakukan ...
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
Pada titik ini, Foo.ignored diabaikan di cabang master saya, tetapi masih ada, sehingga proyek saya dapat menggunakannya.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Sekarang saya punya cabang dengan file-file ini dilakukan, seperti yang saya inginkan. Namun, ketika saya beralih kembali ke cabang master saya, Foo.ignored hilang.
Adakah yang punya saran untuk cara yang lebih baik untuk mengatur ini?
Sunting: hanya untuk memperjelas, saya ingin file mp3 hadir di kedua cabang sehingga ketika saya menjalankan situs secara lokal (menggunakan salah satu cabang) situs berfungsi. Saya hanya ingin file diabaikan dalam satu cabang jadi ketika saya mendorong ke GitHub mereka tidak didorong juga. Biasanya .gitignore berfungsi dengan baik untuk hal semacam ini (yaitu menyimpan salinan file lokal yang tidak dimasukkan dalam push ke remote), tetapi ketika saya beralih ke cabang dengan file-file yang diperiksa, dan kemudian kembali ke cabang dengan file diabaikan, file hilang.