Ich habe ein Projekt, das ich in der Heroku . Der Quellcode-Baum enthält eine Reihe von mp3-Dateien (die Website wird für ein Aufnahmeprojekt sein, an dem ich stark beteiligt war).
Ich würde gerne den Quellcode dafür auf GitHub aber GitHub hat ein 300 MB-Limit 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 in den .gitignore
Datei, um sie aus meinem Repo herauszuhalten.
Ich stelle jedoch auf Heroku bereit, indem ich git push heroku
. Die mp3-Dateien müssen in der Verzweigung vorhanden sein, die ich an Heroku weitergebe, damit sie bereitgestellt werden können.
Im Idealfall würde ich gerne .gitignore
die mp3-Dateien in meinem lokalen Master-Zweig, so dass, wenn ich, dass auf GitHub zu schieben, die mp3s sind nicht enthalten. Dann würde ich eine lokale Produktion Zweig, der die mp3s verpflichtet hat, anstatt ignoriert zu halten. Um bereitzustellen, würde ich Master in Produktion zusammenführen, und dann die Produktion Zweig zu Heroku schieben.
Ich kriege das nicht zum Laufen.
Hier ist ein Beispiel für das, was ich zu tun versuche...
$ 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 Master-Zweig ignoriert, aber es ist immer noch vorhanden, so dass 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, wie ich es will. Wenn ich jedoch zurück zu meinem Master-Zweig wechsle, ist Foo.ignored verschwunden.
Hat jemand einen Vorschlag, wie man das besser einrichten kann?
Bearbeiten: nur um zu klären, ich möchte die mp3-Dateien in beiden Zweigen vorhanden sein, so dass, wenn ich die Website lokal (mit einem der Zweige) die Website funktioniert. Ich will nur die Dateien in einem Zweig ignoriert, so dass, wenn ich zu GitHub pushen sie nicht auch gepusht werden. Normalerweise funktioniert .gitignore gut für diese Art von Sache (d.h. eine lokale Kopie einer Datei, die nicht in einem Push zu einem Remote enthalten ist), aber wenn ich zu dem Zweig mit den Dateien eingecheckt wechseln, und dann zurück zu dem Zweig mit den Dateien ignoriert, verschwinden die Dateien.
0 Stimmen
Warum sind die MP3-Dateien immer in das Repository übertragen werden müssen?
4 Stimmen
Mit heroku ist das Commit zu Ihrem Repo der einzige Weg, um Dateien in Ihre App einzubinden, wenn Sie sie bereitstellen. Die einzige Alternative ist, etwas wie Amazon S3 zu verwenden, um die mp3s zu dienen, aber ich würde es vorziehen, das zu vermeiden.
0 Stimmen
Es klingt, als würden Sie über Dollars stolpern, um Pfennige zu sparen... Die Rackspace Cloud ist sehr einfach einzurichten, und es würde sehr wenig kosten, < 1 GB an Dateien dort zu speichern...
3 Stimmen
Ich stelle fest, dass Sie eine Antwort als richtig markiert haben, aber nach dem, was ich gelesen habe, ist sie vielleicht nicht richtig. Haben Sie die Antwort jemals ausprobiert, und hat sie bei Ihnen funktioniert?
0 Stimmen
@MyronMarston Wie haben Sie diese Herausforderung gemeistert?
0 Stimmen
Wurde dieses Problem gelöst? Ich habe mit fast dem gleichen Problem zu kämpfen. Betrachten Sie ich habe eine
master
Zweig für die Produktion unddevelopment
Zweig für die Entwicklung.master
Zweig ignoriert Quelldateien (zusammengestellt vongulp
zum Beispiel), währenddevelopment
Zweig ignoriert diese assemblierten und verkleinerten Dateien. Wenn ich hin und her wechsle vonmaster
àdevelopment
meine Dateien verschwinden ständig und machen alles kaputt :(0 Stimmen
Dies ist auch eine praktische Frage für jeden, der ein REPO geforkt hat und den Fork beibehalten möchte, um dazu beizutragen, aber ihn auch als App in einem separaten Zweig verwenden möchte. Jedes Mal, wenn sie Verbesserungen mit dem Framework-Zweig finden, können sie den Zweig zurück zum Fork-Ursprung wechseln und dann einen Push ihrer Korrektur machen. Das ist das Problem, auf das ich stoße. Ich möchte eine Ignorieren auf bestimmte Dateien, wie die Homepage vor allem, so kann ich sicherstellen, und fügen Sie die H2-Tag auf der Index-Vorlage zu identifizieren, so dass ich es nicht verwechselt werden. Eine schnelle Bearbeitung auf der Homepage, und ich brauche eine Ignorieren auf diesem Zweig nur.
0 Stimmen
Ich habe ein npm-Modul geschrieben, um dies zu erreichen. Würde mich freuen zu hören, ob das für Ihre Bedürfnisse funktioniert. npmjs.com/package/build-ignore
0 Stimmen
Die Bearbeitungswarteschlange ist im Moment voll, aber es gibt https-Versionen der URLs im obigen Beitrag, die bearbeitet werden sollten. ( github.de y heroku.de )