Mam projekt, który wdrażam w Heroku . Drzewo kodu źródłowego zawiera kilka plików mp3 (strona będzie dotyczyła projektu nagraniowego, w którym byłem mocno zaangażowany).
Chciałbym umieścić kod źródłowy na GitHub , ale GitHub ma limit 300 MB na swoich bezpłatnych kontach. Nie chcę wykorzystywać 50 MB z mojego limitu na kilka plików mp3. Oczywiście mogłem dodać je do .gitignore
pliku, aby nie trafiały do mojego repozytorium.
Jednak wdrażam do Heroku przy użyciu git push heroku
. Pliki mp3 muszą znajdować się w gałęzi, którą wysyłam do Heroku, aby zostały wdrożone.
Najlepiej byłoby .gitignore
, gdyby pliki mp3 znajdowały się w mojej lokalnej gałęzi głównej, aby po przesłaniu ich do GitHub pliki mp3 nie były uwzględniane. Następnie zachowałbym lokalny oddział produkcyjny, w którym pliki MP3 są zobowiązane, a nie ignorowane. Aby wdrożyć, połączyłem mistrza z produkcją, a następnie przekazałem gałąź produkcyjną do Heroku.
Nie mogę sprawić, żeby to działało dobrze.
Oto przykład tego, co próbuję zrobić ...
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
W tym momencie Foo.ignored jest ignorowany w mojej gałęzi master, ale nadal jest obecny, więc mój projekt może go używać.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Teraz mam gałąź z zatwierdzonymi plikami, tak jak chcę. Jednak kiedy przełączam się z powrotem do mojej gałęzi głównej, Foo.ignored zniknął.
Czy ktoś ma jakieś sugestie dotyczące lepszego sposobu konfiguracji?
Edycja: tylko dla wyjaśnienia, chcę, aby pliki mp3 były obecne w obu gałęziach, aby po uruchomieniu witryny lokalnie (przy użyciu dowolnej gałęzi) strona działała. Chcę tylko, aby pliki były ignorowane w jednej gałęzi, więc kiedy pcham do GitHub, również nie są wypychane. Zwykle .gitignore działa dobrze na tego typu rzeczy (tj. Przechowywanie lokalnej kopii pliku, który nie jest dołączany do zdalnego przekazywania), ale kiedy przełączam się do gałęzi z wpisanymi plikami, a następnie z powrotem do rozgałęzienia z ignorowanymi plikami pliki znikają.