У меня есть проект, который я внедряю в Heroku . Дерево исходного кода включает в себя множество mp3-файлов (сайт будет для проекта записи, с которым я был активно связан).
Я хотел бы разместить исходный код для этого на GitHub , но GitHub имеет ограничение 300 МБ для их бесплатных учетных записей. Я не хочу использовать 50 МБ своего лимита на кучу mp3-файлов. Очевидно, я мог бы добавить их в .gitignoreфайл, чтобы они не попали в мой репозиторий.
Тем не менее, я развернуть в Heroku с помощью git push heroku. Файлы MP3 должны присутствовать в ветке, которую я отправляю в Heroku, чтобы они были развернуты.
В идеале, я бы хотел, чтобы .gitignoremp3-файлы были в моей локальной ветке master, чтобы при отправке этого файла на GitHub mp3-файлы не включались. Тогда я бы оставил местный производственный филиал, в котором mp3 записаны, а не проигнорированы. Чтобы развернуть, я бы слил мастера с производством, а затем отправил производственный филиал в Heroku.
Я не могу заставить это работать правильно.
Вот пример того, что я пытаюсь сделать ...
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
На данный момент Foo.ignored игнорируется в моей основной ветке, но он все еще присутствует, поэтому мой проект может его использовать.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Теперь у меня есть ветка с этими файлами, как я хочу. Однако, когда я переключаюсь обратно в свою основную ветку, Foo.ignored больше нет.
Кто-нибудь получил какие-либо предложения для лучшего способа установить это?
Изменить: просто чтобы уточнить, я хочу, чтобы mp3-файлы присутствовали в обеих ветках, чтобы при работе сайта локально (с использованием любой ветви) сайт работал. Я просто хочу, чтобы файлы игнорировались в одной ветке, поэтому, когда я отправляю на GitHub, они также не выталкиваются. Обычно .gitignore хорошо работает для такого рода вещей (т.е. для сохранения локальной копии файла, который не включается в push-уведомление на удаленном компьютере), но когда я переключаюсь на ветку с отмеченными файлами, а затем возвращаюсь к ветка с файлами игнорируется, файлы исчезают.