micha9412 Geschrieben 24. Juli 2014 Geschrieben 24. Juli 2014 Hallo Leute, ich bin Fachinformatiker im zweiten Ausbildungsjahr und darf mich jetzt mit GIT beschäftigen. Ich habe diverse Online-Bücher gelesen und auch viel probiert. Die groben Züge habe ich verstanden (denke ich). Zu einer Frage habe ich keine Antwort gefunden, vielleicht könnt Ihr mir bei der Beantwortung helfen. Bei uns in der Software sind alle Views strikt von der Businesslogik getrennt (MVVM). Pro Kunde sollen verschiedene Views verändert und ausgetauscht werden (der eine Kunde möchte die Maske so, der nächste wieder anders..). Die Businesslogik bleibt in der Regel gleich. D. h. vom ganzen Projekt verändern sich nur wenige Dateien. Wie bildet man sowas in GIT ab? Man erstellt seinen separaten Branch für Kunde X und verändert in diesem die entsprechenden Views? Wie stelle ich sicher, dass der Rest des Codes immer = master ist? Vielen Dank Micha PS: Bitte entschuldigt meine evtl. falsche Wahl des Forums. Ich wusste nicht, in welches ich es sonst posten sollte. Zitieren
flashpixx Geschrieben 25. Juli 2014 Geschrieben 25. Juli 2014 Wie bildet man sowas in GIT ab? Man erstellt seinen separaten Branch für Kunde X und verändert in diesem die entsprechenden Views? Wie stelle ich sicher, dass der Rest des Codes immer = master ist? Branches sind für die Entwicklung von parallel laufenden Strukturen gedacht, d.h. in diesem Fall ist das eigentlich nicht das richtige. Man würde hier das Projekt trennen, d.h. ein Git Repository mit den Code, der für alle Kunden gleich ist und pro Kunde ein weiteres Repository, in dem die kundenspezifischen Anpassungen gemacht werden. Um nun immer korrekt kompilieren zu können, bindet man in das Kundenrepository, das Hauptrepository als Git Submodul ein. Zitieren
micha9412 Geschrieben 25. Juli 2014 Autor Geschrieben 25. Juli 2014 Hallo Flashpixx, danke für Deine Antwort. Mit Submodulen hatte ich mich bisher noch gar nicht auseinandergesetzt. D. h. die Struktur sähe dann so aus: Respositories: master kunde1 -> submodul master kunde2 -> submodul master kunde3 -> submodul master Wenn ich beispielsweise die Änderungen an kunde1 machen will würde ich dann wie folgt vorgehen: - kunde1 auf meinen Rechner klonen - änderungen an kunde1 durchführen und committen Wie geht es dann weiter? Müsste ich das master nochmal pullen um die aktuelle Version zu erhalten? Wie führe ich kunde1 und master zusammen und verhindere dabei dass die Standardviews (aus dem master) die speziellen Views des Kunden (kunde1) überschreiben? Danke und Gruß Micha Zitieren
flashpixx Geschrieben 26. Juli 2014 Geschrieben 26. Juli 2014 Respositories: master kunde1 -> submodul master kunde2 -> submodul master kunde3 -> submodul master genau Wenn ich beispielsweise die Änderungen an kunde1 machen will würde ich dann wie folgt vorgehen: - kunde1 auf meinen Rechner klonen - änderungen an kunde1 durchführen und committen genau, wobei Du eben beim clone mittels "--recursive" auch das master Repository automatisch mit clonen musst. Wie geht es dann weiter? Müsste ich das master nochmal pullen um die aktuelle Version zu erhalten? Nein das musst Du nicht machen. Schau Dir die Submodule genau an, ein Submodul verweist immer _genau auf einen_ Commit in Deinem master. Um den Master in einem Submodul auf den aktuellen Stand zu bringen, musst Du dem Submodul dies explizit mitteilen. Mein Tipp dazu einfach mal ein kleines Bsp selbst bauen Wie führe ich kunde1 und master zusammen und verhindere dabei dass die Standardviews (aus dem master) die speziellen Views des Kunden (kunde1) überschreiben? Das hat nichts mit Git zu tun, sondern mit der Organisation Deines Projektes. Im Normalfall hat man alle Module des Projektes in einzelnen Repos liegen und zieht dann das Gesamtsystem mittels Submodulen zusammen, d.h. Deine Views sind ein eigenes Modul. In Deinem Kundenrepo clonst Du dann nicht das "generische Viewmodul", sondern ersetzt das Submodul einfach durch ein Verzeichnis in dem Kundenrepo. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.