У меня есть проект, который я развертываю на Heroku . Дерево исходного кода включает в себя кучу mp3-файлов (сайт будет для проекта записи, с которым я был активно связан).
Я бы хотел разместить исходный код для него на GitHub , но GitHub имеет ограничение 300 МБ для своих бесплатных учетных записей. Я не хочу использовать 50 МБ своего лимита на кучу mp3-файлов. Очевидно, я мог бы добавить их в файл .gitignore
, чтобы они не попали в мой репозиторий.
Однако я развернул в Heroku, используя git push heroku
. Файлы MP3 должны присутствовать в ветке, которую я отправляю в Heroku, чтобы их можно было развернуть.
В идеале, я бы хотел .gitignore
файлы mp3 в моей локальной ветке master, чтобы при отправке этого файла на GitHub файлы mp3 не включались. Тогда я бы оставил местную производственную ветку, в которой mp3 записаны, а не проигнорированы. Для развертывания я включил бы master в производство, а затем отправил производственный филиал в 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-уведомление на удаленном компьютере), но когда я переключаюсь на ветку с проверенными файлами, а затем возвращаюсь к ветка с игнорируемыми файлами, файлы исчезают.