Ich arbeite in einem kleinen Team mit bis zu 5 (Web-) Entwicklern. Da unser Team häufig wächst und wir Probleme mit mehreren Personen hatten, die an demselben Code arbeiteten, haben wir beschlossen, ein VCS einzurichten.
Momentane Situation
Derzeit arbeiten wir mit einem zentralen Entwicklungsserver (LAMP). Jeder Entwickler arbeitet also mit derselben Codebasis. Wenn der Code getestet und für unseren Live-Server bereit ist, kopieren wir ihn einfach über FTP. Ich weiß, dass dies eine Art Anno 1600-Workflow ist, aber ja - es ist das, was es ist und auch der Grund für diese Frage.
Auf dem Entwicklungsserver sieht unsere Verzeichnisstruktur folgendermaßen aus:
/var/www
/Project1
/Project2
/Project3
...
Zusätzlich gibt es einige kleine Nicht-Webanwendungen - Android / iPhone / Windows 8 usw. Apps und einige C # -Tools, die ebenfalls im VCS enthalten sein sollten.
Ziel und Probleme
Unser Ziel ist es, ein sauberes Setup für ein VCS zu erhalten, das mit einer Issue-Tracking-Software zusammenarbeitet, es uns ermöglicht, gleichzeitig am selben Projekt zu arbeiten, ohne unsere Codes zu überschreiben, und uns einfach den Vorteil der Versionskontrolle bietet.
Ich denke, die erste Frage für uns ist, welche Technologie wir verwenden sollen. Einige von uns haben bereits Subversion erlebt. Aber weil Git eine Art "Standard" wird und es unter den Webbenutzern viele "Pro-Git" -Argumente gibt, verwenden wir Git.
Da beginnt unsere Unsicherheit. Für die Verwendung von git - einem dezentralen VCS - müssen anscheinend separate Entwicklungsserver auf dem Computer jedes Entwicklers verwendet werden. Die Probleme damit sind:
- Manchmal arbeiten wir auf verschiedenen Computern. Wenn wir also vergessen, unseren Code zu pushen, haben wir ein Problem.
- Wir müssten mit virtuellen Maschinen arbeiten, da die Entwicklungsserver mit unseren Live-Servern identisch sein sollten (dies wäre in unserer Umgebung einfach nicht durchsetzbar, glauben Sie mir, es ist nicht möglich).
- Der Entwicklungsserver diente normalerweise auch als "Tryout" - oder "Präsentations" -Server, auf dem Nicht-Entwickler nachschauten, was los ist.
Gibt es ein anderes mögliches Setup mit git, damit wir vom System profitieren können, während wir noch einen einzelnen (!) Entwicklungsserver verwenden? Vielleicht mit unterschiedlichen Verzeichnissen für jeden Entwickler. Oder können wir immer noch an derselben Codebasis arbeiten und möglicherweise die Dateien sperren, an denen wir arbeiten, und sie dann in ein Repository übertragen. Es ist vielleicht wichtig zu sagen, dass es zwar für uns zu einem Faktor wurde, es aber immer noch ungewöhnlich ist, dass mehrere Entwickler gleichzeitig an demselben Teil einer Anwendung arbeiten.