Ich habe mehrere separate Projekte mit gemeinsamem Code. Was ist die beste Vorgehensweise, um dies in Git und speziell SmartGit zu erreichen?
Habe alles in einem riesigen Repository
Verfügen Sie über ein Repository für jedes Projekt und ein Repository für gemeinsam genutzten Code und verwenden Sie Git-Submodule .
Verfügen Sie über ein Repository für jedes Projekt und ein Repository für gemeinsam genutzten Code und verwenden Sie Git Subtrees . Kann mir jemand sagen, ob dies von SmartGit unterstützt wird und wie es erreicht werden kann?
Was sind die möglichen Fallstricke bei diesen Methoden und was sind die besten Praktiken mit SmartGit?
Ich würde empfehlen, entweder ein Repository für alle Projekte zu haben oder Submodule zu verwenden:
Wenn Ihr gemeinsamer Code eng mit Ihren Projekten verknüpft ist, erfordern Refactorings und andere (API-) Änderungen Ihres gemeinsamen Codes wahrscheinlich Änderungen in allen Ihren Projekten, also wenn Sie alles mit einem Commit machen können In ein Repository werden Sie weniger Zeit mit Versionskontrolle (mit Git) verbringen. Zum Beispiel kann Git Submodules nicht einfach auf den HEAD eines Zweigs zeigen, sondern nur auf ein bestimmtes Commit. Es kann mühsam werden, Ihre Submodule immer auf den neuesten Commit zu aktualisieren.
Wenn Ihr allgemeiner Code mehr wie eine unabhängige Bibliothek ist und es ausreicht, Ihre Projekte von Zeit zu Zeit mit neueren Versionen dieser Bibliothek zu aktualisieren, werden Submodule die bessere Wahl sein. Sie werden mit SmartGit gut unterstützt und separate Repositories bieten Ihnen z. die Flexibilität, später nur einige Ihrer Repositories mit anderen zu teilen.
Es gibt keine spezielle Unterstützung für Subtrees in SmartGit.
Tags und Links git version-control smartgit