Frage

Gibt es eine einfache Möglichkeit, verschiedene .gitignore -Dateien für verschiedene Fernbedienungen einzurichten? Ich habe ein Repository, das ich sowohl auf Heroku als auch auf Github drücke. Ich brauche database.yml für Heroku, möchte aber nicht, dass einige der Informationen auf GitHub gedrängt werden. Daher brauche ich eine andere .gitignore -Datei für jede der Fernbedienungen.

Ich habe versucht, zwei separate Zweige zu haben, eine, die database.yml ignoriert, und eine, die nicht. Das Problem ist, dass die gesamte Datenbank.yml -Datei verschwunden ist, wenn ich den Heroku -Zweig überprüfe und wieder in meine Github -Zweigstelle gehe.

Irgendwelche Tipps?

War es hilfreich?

Lösung

Ich weiß nichts über die Anforderungen an Heroku - hoffentlich ist Gerechtigkeit richtig und Sie können das Problem einfach vermeiden. Wenn Sie nicht können oder wenn jemand anderes dies findet, der nicht ...

Wenn Sie möchten, dass die beiden Fernbedienungen Spiegel sind (die gleichen Commits haben), müssen sie per Definition die gleichen Dateien in diesen Commits haben. Sie haben also zwei Möglichkeiten: haben file-for-repo-B In allen Repositories, auch wenn sie es nicht brauchen oder einen etwas unordentlichen Workflow mit zwei Zweigen verwenden: master und for-repo-B. Der einzige Unterschied zwischen den beiden Zweigen wäre die Berührung der Commits file-for-repo-B; die Branche for-repo-B würde sich immer von verschmelzen von master (Aber nie umgekehrt!). Jetzt haben Sie nur einen anderen Zweig in Repo B ausgecheckt, und alles ist gut.

Andere Tipps

Stellen Sie keine Datenbankinformationen in Datenbank.yml ein. Verwenden Sie stattdessen Heroku -Umgebungsvariablen.

Sie sollten a: versionieren a:

  • database.yml mit nur Variablen darin und
  • Ein Skript, das diese Variablen abhängig vom Remote -Server durch die richtigen Werte ersetzen kann database.yml wird eingesetzt.

Dann verwenden Sie das Skript als Fischattributfiltertreiber:

smudge content filter

Jedes Mal, wenn Sie auf einem Remote -Server auschecken (und einen funktionierenden Baum erstellen), wird das Skript ausgeführt und ändert die Variablen entsprechend, sodass Sie einen benutzerdefinierten Bereich erhalten database.yml Datei.
Wenn einer der Fernbedienung das nicht braucht database.yml Datei, es kann immer noch da sein, aber vom Smudge -Skript geleert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top