Ü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-historieskann man dies jedoch erzwingen.
- Mit
git mvverschiebt 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
--squashangeben. - Achtung:
subtree addführt einen Merge aufHEADdurch 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.gitui.git
sind bereits vorhanden.
Schritt 0 - START
Schritt 1 - Zusammenführen `git subtree`
Starte im Verzeichnis git-uebungen/aufgaben/modularisierung-repositorys-zusammenfuehren.
- Erstelle ein Repo
applicationmit einem Commit. - Füge
backend.gitin einem Unterverzeichnisbackendhinzu. - Füge
ui.gitin einem Unterverzeichnisuihinzu. - 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