Frage

Ich versuche mit meinem Freund ein anständiges Entwicklungsmuster einzubauen. Der Plan ist, dass wir auf unseren eigenen Computern eine unabhängige Entwicklung durchführen, dann zum Testen auf den Dev -Server drängen und dann vom Dev -Server zum produktiven Server (Heroku) drücken.

Das Problem ist, ich kann Git nicht verhalten lassen. Vielleicht weiß ich einfach nicht genug, um grundlegend zu verstehen, was passiert. Ich habe das Repo auf dem Dev-Server eingerichtet, aber wenn ich ihn an meinen PC klone, kann ich ihn nicht zurückschieben, weil es sich darüber beschwert, dass ich mich über ein Nicht-Bare-Repo beschwert. Dann habe ich versucht, die Repos zu verzweigen und Zweige zu drücken, aber jetzt bekomme ich viele schnelle Aussagen, und ich glaube nicht, dass ich diese will.

Meine Frage ist also das. Wie richte ich den Server ein, damit alles nur "funktioniert"? Der Server kann kein bloßes Repo sein, er muss den Code enthalten, damit wir die App testen können. Wir möchten in der Lage sein, reibungslos vom Repo zu unseren eigenen Entwicklercomputern zu schieben und zu ziehen. Und der Server muss in der Lage sein, nach Heroku zu drängen (dies kann dies bereits tun). Dies ist auf meinem eigenen Server, daher habe ich vollständigen Zugriff auf alles, was ich brauche, um dies zum Laufen zu bringen. (Ubuntu Server Edition 11.04).

Vielen Dank!

War es hilfreich?

Lösung

Der Grund, warum Sie standardmäßig nicht auf ein Nicht-Bare-Repository drängen können, ist, dass ein Nicht-Bare-Repository über ein geprüftes Arbeitskopie zugeordnet ist. Wenn Sie Updates in die ausgecheckte Niederlassung überschreiten, wird die Arbeitskopie mit einem eigenen Repository aus der Synchronisierung geraten, es sei denn, Sie führen einen Befehl aus, um ihn zu aktualisieren (was Sie mit einem Post-Receive-Haken durchführen können). Wenn Sie sich dessen bewusst sind und Sie sowieso auf ein Nicht-starken-Repository drängen möchten, können Sie die festlegen receive.denyCurrentBranch Konfigurationseigenschaft an ignore und Git lässt die Drucke zu. Für weitere Details verweist ich Sie auf a Blogeintrag Ich habe vor einiger Zeit geschrieben (wahrscheinlich für ein Update), das ein ähnliches Setup beschreibt, das ich für meine eigene Website verwende.

Beachten Sie, dass ich anstelle von nur Entwicklungs- und Produktionsservern (jeweils mit ihren eigenen Nichtgeburten-Repositories) auch ein drittes Repository, ein nacktes, zuerst habe, das ich zuerst ändern kann, bevor ich sie an Dev schicke. Auf diese Weise drücke ich immer nur auf den Entwicklungsserver von einem Ort, der hilft, die Dinge synchron zu halten.

Andere Tipps

Um den Kommentar von @David Zaslavsky zu erläutern Git-Deploy Um auf Ihren Entwicklungsserver zu treiben. Sie bekommen die gleiche Semantik wie nach Heroku ohne Heroku.

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