2016-04-07 7 views
0

Ich versuche, ein lokales Git-Repository auf einem sicheren Server einzurichten (deshalb kann ich github überhaupt nicht verwenden). Ich bin ein Git Neuling. Es ist für mehrere Projekte und jedes Projektverzeichnis enthält die .git-Datei. Ich habe mir ein Modell ausgedacht, das für einen einzelnen Benutzer zu funktionieren scheint, aber ich denke nicht, dass sich das für mehrere Benutzer gut übersetzen lässt. In jedem Projekt habe ich einen Entwicklungszweig eingerichtet, in dem Codeentwicklung und -tests stattfinden. Wenn wir damit zufrieden sind, werden wir mit dem Master-Zweig verschmelzen, von wo aus die Routineprogramme ausgeführt werden. Der Workflow ist:Einrichten eines lokalen Git-Repositorys ohne Verwendung von github für mehrere Benutzer

Auf Zweig Entwicklung:

Bearbeite

git add python.py 
git commit -m "made change to python.py" 

Jetzt Text.txt wir python.py aus dem Entwicklungszweig zu testen, ob diese Veränderungen gearbeitet laufen. Wenn nicht, können wir entweder wiederherstellen oder weiter entwickeln. Wenn wir glücklich sind:

git checkout master 
git merge development 

Jetzt können wir unser neu entwickeltes Programm von unserem Master-Zweig in dem sicheren Wissen führen, dass es funktioniert.

Dies ist jedoch in Ordnung, wenn ich selbst arbeite, aber dieses Modell muss für mehr Benutzer, die den Code entwickeln, anpassen. Dies ist, wo ich verwirrt bin. Ist dies ein gutes Start-off-System oder wäre das Klonen unseres Repositorys auf eine lokale Maschine ein besserer Weg, wenn mehrere Leute es benutzen?

Wenn zwei Personen gleichzeitig im Entwicklungszweig an derselben Sache arbeiten, gehen einige Änderungen verloren, wenn sie zum Staging-Bereich/Commit hinzugefügt werden.

Daher sollten wir auf einem lokalen Computer klonen, unsere Änderungen vornehmen, unsere Tests durchführen und dann zurück zum lokalen Repository senden, damit ein Benutzer diese Änderungen überprüfen kann? Das Problem, das ich damit sehe, ist, dass wir Windows-Maschinen benutzen ... und wir ssh in einen Linux-Ubuntu-Server, wo wir unsere Arbeit machen. Unsere Windows-Rechner verfügen daher nicht über die notwendigen Dateien (und in einigen Fällen SQL-Datenbanken), um unsere Arbeit zu testen. Auch wenn wir die Dateien anlegen, müssen die Verzeichnisse in den Skripten jedes Mal geändert werden, um dies zu berücksichtigen?

Hat jemand irgendeine Erfahrung mit einer ähnlichen Sache, oder kann mich in die richtige Richtung zeigen? Danke

Antwort

1

Sie fragen eine Menge Dinge. Ich werde versuchen, Sie in die "richtige" Richtung zu zeigen

Sie möchten auf jeden Fall, dass jeder Entwickler das Repo auf ihrem lokalen Computer klonen.

In der Tat ist das Haupt-Repository in der Regel bare, was bedeutet, dass nur die Git-Objekte und nicht eine ausgecheckte Kopie enthält, so dass Sie nicht einmal Dateien im Haupt-Repository anzeigen oder bearbeiten können.

Es ist in Ordnung, auf einem Windows-Computer zu entwickeln und auf einem Linux-Server zu implementieren, aber Sie müssen die Umgebung verwalten. Sie können zum Beispiel eine Konfigurationsdatei für die Produktion und eine lokale Konfigurationsdatei haben, die nicht festgeschrieben ist und die jeder Entwickler für seine eigene Maschine einstellt.

Sie können Chapter 5 - Distributed Git aus dem Pro Git-Buch für einige allgemeine verteilte Arbeitsabläufe überprüfen.

Sie können einige Probleme mit der Installation einer privaten Github-Alternative speichern.

Ein letzter Gedanke: Betrachte ein Repo pro Projekt anstelle eines Repos mit mehreren Projekten darin