Übung - Kleine Projekte zusammenfuehren
Zwei bisher unabhängige Repositorys sollen, unter Erhaltung der Historie zu einem großen Repository zusammengeführt werden.
Tipps
- Mit
fetch
(undpull
) kann man auch Historie aus fremden Repositorys ohne gemeinsame Histories mit dem aktuellen Repository holen (Stichwort unrelated histories). merge
(undpull
) verweigern normalerweise das Integrieren von unrelated histories- Mit
--allow-unrelated-histories
kann man dies jedoch erzwingen.
- Mit
git mv
verschiebt Dateien und Verzeichnisse, z. B.git mv datei1 date1 zielverzeichnis
.subtree add --prefix=<Zielverzeichnis> <Quellrepository> <Quellbranch oder Version>
: Einbetten eines anderen Repositorys in ein Unterverzeichnis.- Fall man nicht die ganze Historie übernehmen möchte, kann man
--squash
angeben. - Achtung:
subtree add
führt einen Merge aufHEAD
durch und
kann daher nicht in einem leeren Repository ohne Commits ausgeführt werden.
- Fall man nicht die ganze Historie übernehmen möchte, kann man
Setup
Zwei Repositorys
backend.git
ui.git
sind bereits vorhanden.
Schritt 1 - Zusammenführen `git subtree`
Starte im Verzeichnis git-uebungen/aufgaben/modularisierung-repositorys-zusammenfuehren
.
- Erstelle ein Repo
application
mit einem Commit. - Füge
backend.git
in einem Unterverzeichnisbackend
hinzu. - Füge
ui.git
in einem Unterverzeichnisui
hinzu. - Untersuche Verzeichnissstruktur und Commit-Graphen
Schritt 2 - Zusammenführen mit `fetch`, `mv` und `merge`
Starte im Verzeichnis git-uebungen/aufgaben/modularisierung-repositorys-zusammenfuehren
.
UI und Backend sollen in einem neuen Klon gesamt
zusammengeführt werden. Folge den Anweisungen im Kapitel “Kleine Projekte zusammenführen”. Untersuche dann Verzeichnissstruktur und Commit-Graphen