J'ai un projet que je déploie sur Heroku . L'arborescence du code source comprend un tas de fichiers mp3 (le site Web sera pour un projet d'enregistrement dans lequel j'ai été fortement impliqué).
Je voudrais mettre le code source pour cela sur GitHub , mais GitHub a une limite de 300 Mo sur leurs comptes gratuits. Je ne veux pas utiliser 50 Mo de ma limite sur un tas de fichiers mp3. Évidemment, je pourrais les ajouter au .gitignore
fichier pour les garder hors de mon dépôt.
Cependant, je déploie sur Heroku en utilisant git push heroku
. Les fichiers mp3 doivent être présents dans la branche que je pousse vers Heroku pour qu'ils soient déployés.
Idéalement, j'aimerais .gitignore
les fichiers mp3 dans ma branche principale locale afin que lorsque je les envoie sur GitHub, les mp3 ne soient pas inclus. Ensuite, je garderais une branche de production locale qui a les mp3 commis plutôt que ignorés. Pour déployer, je fusionnais le maître dans la production, puis je poussais la branche de production vers Heroku.
Je ne peux pas faire fonctionner ça correctement.
Voici un exemple de ce que j'essaie de faire ...
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
À ce stade, Foo.ignored est ignoré dans ma branche master, mais il est toujours présent, donc mon projet peut l'utiliser.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Maintenant, j'ai une branche avec ces fichiers validés, comme je le souhaite. Cependant, lorsque je reviens à ma branche principale, Foo.ignored est parti.
Quelqu'un a-t-il des suggestions pour une meilleure façon de configurer cela?
Edit: juste pour clarifier, je veux que les fichiers mp3 soient présents dans les deux branches afin que lorsque je lance le site localement (en utilisant l'une ou l'autre branche) le site fonctionne. Je veux juste que les fichiers soient ignorés dans une branche, donc quand je pousse vers GitHub, ils ne le sont pas non plus. Habituellement .gitignore fonctionne bien pour ce genre de chose (c'est-à-dire garder une copie locale d'un fichier qui n'est pas inclus dans un push vers une télécommande), mais quand je passe à la branche avec les fichiers archivés, puis retourne au branche avec les fichiers ignorés, les fichiers disparaissent.