2016-05-22 17 views
1

ich eine Git-Repository mit der folgenden Struktur:pflegt git remote in ein Unterverzeichnis

src/ 
    .git/ 
    Api/ 
    Web/ 

Ich mag ein anderes Repository in das Web-Verzeichnis klonen und neue Änderungen von einem Remote-Web zu Zeit später von Zeit ziehen . Aber ich möchte auch die Dateien unter /Web ändern und jede Änderung, die ich vorgenommen habe, auf meine Haupt-Fernbedienung übertragen. Ich möchte nichts zur Web-Fernbedienung schieben, nur zur Haupt-Fernbedienung.

Wenn ich die Änderungen von der Web-Remote ziehen, würde ich gerne die Änderungen sehen, die ich im Hauptverlauf gezogen habe.

Kann ich Git Submodule in diesem Szenario verwenden?

Die docs sagt, dass "The other repository has its own history, which does not interfere with the history of the current repository." das ist, warum ich zögere, wahrscheinlich ist das nicht mit Submodulen getan werden kann ...?

Antwort

1

Das wird funktionieren. Git behandelt alles in Verzeichnissen, die den darunterliegenden Inhalt als Teil des vorhandenen Arbeitsbaums verfolgt haben; Es stoppt nur bei .git -enthalten-Verzeichnisgrenzen, wenn es derzeit-_un_tracked Verzeichnisse scannt.

Die Sache ist, dass Sie nicht das verschachtelte Repository als ein Submodul an diesem Punkt verwenden - Sie binden tatsächlichen Inhalt an Ihr Haupt-Repository, nicht nur die ID für den aktuell ausgecheckten Tipp im verschachtelten ein. Benutze den Submodul-Befehl überhaupt nicht, das widerspricht allem anderen, was du dem Inhalt erzählst.

Sie müssen alle geänderten Inhalte wie bei allen anderen Änderungen in Ihr Haupt-Repository einfügen. Sie könnten es zusätzlich zum verschachtelten Repository hinzufügen und es dort auch verfolgen.

und jede Änderung drücken, die ich

Git gemacht hat Änderungen nicht speichern, speichert es Schnappschüsse. Es analysiert die gespeicherten Snapshots, um Änderungen bei Bedarf zu erkennen und mit ihnen zu arbeiten.


Wenn Sie nicht die Ergebnisse einer sehr konkreten Kosten-Nutzen-Analyse haben, die die Entscheidung unterstützt, tun Sie dies nicht.