it-swarm.com.de

Git-Produktions- / Staging-Server-Workflow

Derzeit enthält meine Website (Produktionsserver) bereits viel Code. Und jetzt möchte ich Git für meine Projekte verwenden und einen Staging-Server für mein Team einrichten. Kann mir jemand einen Rat geben?

Hier ist das Bild in meinem Kopf:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

Meine Frage ist, wie soll ich anfangen?

Hier sind einige Schritte in meinem Kopf:

  1. mach ein git init im Produktionsserver (ist das sicher?)
  2. clone das Repo von der Produktion zum Staging-Server
  3. entwickler clone das Repo vom Staging auf ihren lokalen Rechner
  4. Push Dateien auf den Staging-Server, nachdem die Änderung abgeschlossen ist
  5. wenn die Inszenierung fertig ist, Push alles für die Produktion

Ist dieser Arbeitsablauf sinnvoll, oder gibt es einen besseren Weg, dies zu tun?

Was ist, wenn ich nur eine Datei ändern möchte?

Hat Origin/Master in diesem Prozess etwas damit zu tun? Wer ist der Ursprung? werde ich am Ende mehrere Ursprünge haben?

Wann sollte ein Entwickler in diesem Fall branch verwenden?

107
kayue

Es ist besser, den Hauptzweig nur für den Produktionszweig und den Entwicklungszweig für die Bereitstellung zu verwenden. Jeder Entwickler sollte einen lokalen Zweig erstellen, um neue Funktionen hinzuzufügen, und diesen dann mit dem Entwicklungszweig zusammenführen. Wenn Sie noch kein Git haben, versuchen Sie es mit - http://github.com/nvie/gitflow Es gibt auch ein gutes Bild, das das Verzweigungsmodell von Git beschreibt - http: // nvie .com/posts/ein-erfolgreiches-Git-Verzweigungsmodell /

58
bUg.

Ihr Vorschlag sieht in Ordnung aus, aber ich würde die Entwickler nicht direkt auf den Staging-Server pushen lassen. Stattdessen sollte ein Integrator Zweige sorgfältig prüfen und in den Hauptzweig einbeziehen (oder in den Entwicklungszweig, wenn Sie das Git-Flow-Modell verwenden, wie von bUg vorgeschlagen). * Dieselbe Person würde zur Inszenierung pushen Server.

* Integrator: " Eine ziemlich zentrale Person, die als Integrator in einem Gruppenprojekt fungiert, empfängt von anderen vorgenommene Änderungen, überprüft und integriert sie und veröffentlicht das Ergebnis, damit andere es verwenden können ... "


1. einen Git-Init im Produktionsserver ausführen (ist das sicher?)

Ja, es ist sicher, aber Sie müssen natürlich sehr restriktive Berechtigungen für dieses Repo festlegen. Ich würde wahrscheinlich damit beginnen, curl die gesamte Website auf eine lokale CD zu kopieren, wenn ich sie noch nicht habe.

2. Klonen Sie das Repo von der Produktion auf den Staging-Server

Sie sollten wahrscheinlich ein "zentrales" Repo haben, das sowohl vom Produktions- als auch vom Staging-Server getrennt ist. Dieser kann nach Bedarf geklont und verschoben werden.

3. Entwickler klonen das Repo vom Staging auf ihren lokalen Rechner

4. Dateien nach Abschluss der Änderung auf den Staging-Server übertragen

5. wenn die Inszenierung fertig ist, schiebe alles zur Produktion

Ersetzen Sie "Inszenierung" durch "Zentral" und ich denke, Sie sind in Ordnung, aber ein größeres Problem ist, wie Sie mit Verzweigungen und Zusammenführungen arbeiten, wie bUg hervorhebt.

18
Felixyz