2016-05-13 15 views
3

Ich habe zwei Apps/Projekte - eine für Kunden und eine für Arbeiter. Beide Projekte haben den gleichen Backend-API-Code, die gleichen Business-Level-Objekte, die gleichen benutzerdefinierten GUI-Steuerelemente und einige Funktionen. Ich möchte den identischen Code durch den geteilten Code ersetzen. Zum Beispiel, um diesen Code in einen separaten Repo zu verschieben.Git Submodul vs Git Unterbaum vs Abhängigkeitsmanager CocoaPods

Da sich beide Projekte in der Entwicklung befinden, wird alles (einschließlich des gemeinsamen Codes) sehr oft geändert. Freigegebener Code wird normalerweise als Teil eines dieser beiden Projekte aktualisiert.

Was ist der beste Weg, um den Code zwischen zwei Projekten zu teilen, wenn ich eine einfache Möglichkeit es häufig zu aktualisieren brauche?

Mein idealer Anwendungsfall wird die folgend:

  1. ich das Kundenprojekt (Kunden und gemeinsamen Code) ändern.
  2. Ich verpfände und schiebe neue Änderungen an den Kunden Repo und an den Shared Code Repo.
  3. Ich öffne Worker-Projekt, ziehen Sie für den freigegebenen Code und aktualisieren Sie dann Worker-Code, wenn es gemeinsame Codeänderungen widerspiegeln muss.

P.S. Qestions Differences between git submodule and subtree und GIT Nested repositories: Composer vs. SubModules vs. Subtree vs.? haben sehr gute Antworten, aber es ist immer noch nicht klar, was ich wählen sollte, wenn ich eine einfache Möglichkeit brauche, häufig verwendeten Code zu aktualisieren.

Antwort

2

Ich würde ein Git-Submodul persönlich verwenden, es ist eine sehr gute Verbindung zu einer gemeinsamen Codebasis, die selbst ein Git-Repository ist, das separat verwaltet werden kann, ohne in Ihren anderen Projekten verfolgt zu werden.

Sie können git submodule foreach git pull origin master sowohl auf der Client- als auch auf der Arbeiterseite verwenden, um Änderungen zu übernehmen, wenn die gemeinsam genutzte Bibliothek aktualisiert wird.

+1

Wären keine Submodule für diesen Fall besser geeignet? – Avt

+0

Das ist genau das, was ich gesagt habe –

+0

Haben Sie das Problem gelöst? –