Ich habe ein Projekt, das ich für Heroku bereitstelle . Der Quellcodebaum enthält eine Reihe von MP3-Dateien (die Website ist für ein Aufnahmeprojekt vorgesehen, an dem ich stark beteiligt war).
Ich möchte den Quellcode dafür auf GitHub veröffentlichen , aber GitHub hat ein Limit von 300 MB für seine kostenlosen Konten. Ich möchte nicht 50 MB meines Limits für eine Reihe von MP3-Dateien verwenden. Natürlich könnte ich sie der .gitignore
Datei hinzufügen , um sie aus meinem Repo herauszuhalten.
Ich stelle jedoch Heroku mit bereit git push heroku
. Die MP3-Dateien müssen in dem Zweig vorhanden sein, den ich an Heroku weitergebe, damit sie bereitgestellt werden.
Im Idealfall möchte ich .gitignore
die MP3-Dateien in meinem lokalen Master-Zweig verwenden, damit die MP3s nicht enthalten sind, wenn ich sie an GitHub übertrage. Dann würde ich eine lokale Produktionsniederlassung behalten, in der die MP3s festgeschrieben und nicht ignoriert werden. Für die Bereitstellung würde ich den Master in die Produktion einbinden und dann den Produktionszweig nach Heroku verschieben.
Ich kann das nicht richtig zum Laufen bringen.
Hier ist ein Beispiel dafür, was ich versuche zu tun ...
$ git init git-ignore-test
$ cd git-ignore-test
$ echo "*.ignored" >> .gitignore
$ git add .gitignore && git commit -m "Ignore .ignored files"
$ touch Foo.ignored
Zu diesem Zeitpunkt wird Foo.ignored in meinem Hauptzweig ignoriert, ist aber immer noch vorhanden, sodass mein Projekt es verwenden kann.
$ git checkout -b unignored
$ cat /dev/null > .gitignore
$ git add Foo.ignored .gitignore && git commit -m "Unignore .ignored files"
Jetzt habe ich einen Zweig mit diesen Dateien festgeschrieben, wie ich will. Wenn ich jedoch wieder zu meinem Hauptzweig wechsle, ist Foo.ignored nicht mehr vorhanden.
Hat jemand Vorschläge für eine bessere Einrichtung?
Bearbeiten: Zur Verdeutlichung möchte ich, dass die MP3-Dateien in beiden Zweigen vorhanden sind, damit die Site funktioniert, wenn ich die Site lokal ausführe (mit beiden Zweigen). Ich möchte nur, dass die Dateien in einem Zweig ignoriert werden. Wenn ich auf GitHub pushe, werden sie auch nicht gepusht. Normalerweise funktioniert .gitignore gut für diese Art von Dingen (dh eine lokale Kopie einer Datei, die nicht in einem Push auf eine Fernbedienung enthalten ist), aber wenn ich mit eingecheckten Dateien zum Zweig wechsle und dann zurück zum Verzweigen Sie mit den Dateien ignoriert, die Dateien verschwinden.