2015-08-10 6 views
5

Ich möchte mit Github Pages eine Produktions-Website (z. B. www.example.com) und eine Staging-Version der gleichen Website (z. staging.example.com).Erstellen von Staging- und Produktionsversionen einer Website auf Github Pages

Ich habe ein Repo (zB meine-jekyll-Website) in Github für die Produktionsstätte eingerichtet, einen gh-pages-Zweig erstellt und die CNAME-Datei in der Stammebene des Repos auf www.example gesetzt. com. Funktioniert super.

Nun, was ist der am wenigsten schmerzhafte Weg, auch Änderungen an staging.example.com zu pushen?

Eine Sache, die ich ausprobiert habe, ist die Einrichtung eines zweiten Remote Repos auf Github (z. B. meine-jekyll-Website-Staging), dann das Hinzufügen als Remote zu meiner lokalen Git-Konfiguration. Funktioniert gut, außer, dass die CNAME-Datei im Repo auf staging.example.com geändert werden muss, damit dies funktioniert. Das ist nicht gut, weil ich dann, wenn ich in der Produktion bereitstellen möchte, die CNAME-Datei zurück zu www.example.com ändern muss. Nicht ideal.

Ich habe mit git filter content drivers angeschaut, aber wenn ich richtig verstehe, das ist über Dateien lokal ändern, nicht verschiedene Versionen einer Datei an verschiedene Fernbedienungen gedrückt bekommen.

Edit: Ich habe auch erwogen, überhaupt keine benutzerdefinierte Domäne für die Bereitstellung zu verwenden: d. H. Einfach mit username.github.io/my-jekyll-website-staging. Leider brechen dann meine Site-Root-relativen Links (z. B. /images/foo.bar), weil die Baseurl jetzt zwischen Produktion und Staging unterschiedlich ist.

+1

Könnten Sie nicht einfach den Staging-Git-Zweig in den Produktionszweig zusammenführen und drücken? Sie könnten einfach die CNAMEs permanent auf ihre jeweiligen Repos zeigen, aber die Repos separat manipulieren. –

+0

@ JonathanChan Wenn ich meinen lokalen Staging-Zweig in meinen lokalen gh-pages-Zweig einfüge, kommt auch die CNAME-Einstellung aus dem Staging-Zweig hinzu. Wenn ich dann Gh-Seiten an meine Produktions-Fernbedienung drücke, wird der CNAME falsch sein. Ich versuche zu vermeiden, den CNAME-Eintrag manuell anzupassen, wenn ich verschiedene Zweige zu verschiedenen Fernbedienungen drücke. – Jacob

+1

Machen Sie wie @ JonathanChan sagt, dann [hijack] (http://Stackoverflow.com/a/6793752/5195629) Ihre CNAME-Datei. – Shadowen

Antwort

4

von Kommentaren Pulled oben:

[M], um die Inszenierung git Zweig in die Produktion Zweig und Push-erge könnten Sie halten gerade die CNAMEs dauerhaft ihren jeweiligen repos zeigen, sondern manipulieren die [.] Repos separat.

Kommentar ursprünglich von Jonathan Chan

Sie als @JonathanChan sagt: halten zwei getrennte Zweige, dann hijack Ihre CNAME-Datei in jedem. Auf diese Weise werden lokale Änderungen (für den CNAME) nicht für das Repository übernommen.

+0

Lokale Versionen von Dateien sind nicht relevant für Github Pages, nur was in den Repo übertragen wird. Wie ermöglicht es Ihnen eine Hijacking-Datei, unterschiedliche CNAME-Dateien in vollständig zusammengeschlossenen Zweigen zu haben? – janpio

+0

Der Schlüssel (oder vielleicht "der Kompromiss", nehme ich an) ist, dass Sie zusätzlich zu zwei Remote - Repos entweder separate lokale Zweige (einen für Staging und einen für Produktion) oder separate lokale Repositories (einen für Inszenierung und eine für die Produktion). – Jacob

Verwandte Themen