Manuelle Schritte mit einfachen Git-Befehlen
Es ist geplant, einzelne Verzeichnisse in eigene Repos aufzuteilen und diese dann zusammenzuführen. In den folgenden manuellen Schritten wurden keine Geek-to-Use-Skripte verwendet, sondern leicht verständliche Befehle. Sie können dazu beitragen, zusätzliche N Unterordner in einem anderen Repository zusammenzuführen.
Teilen
Nehmen wir an, Ihr ursprüngliches Repo lautet: original_repo
1 - Geteilte Apps:
git clone original_repo apps-repo
cd apps-repo
git filter-branch --prune-empty --subdirectory-filter apps master
2 - Geteilte Bibliotheken
git clone original_repo libs-repo
cd libs-repo
git filter-branch --prune-empty --subdirectory-filter libs master
Fahren Sie fort, wenn Sie mehr als 2 Ordner haben. Jetzt haben Sie zwei neue und temporäre Git-Repository.
Erobern Sie, indem Sie Apps und Bibliotheken zusammenführen
3 - Bereiten Sie das brandneue Repo vor:
mkdir my-desired-repo
cd my-desired-repo
git init
Und Sie müssen mindestens ein Commit durchführen. Wenn die folgenden drei Zeilen übersprungen werden sollen, wird Ihr erstes Repo unmittelbar unter dem Stammverzeichnis Ihres Repos angezeigt:
touch a_file_and_make_a_commit # see user's feedback
git add a_file_and_make_a_commit
git commit -am "at least one commit is needed for it to work"
Wenn die temporäre Datei festgeschrieben ist, wird der merge
Befehl im späteren Abschnitt wie erwartet gestoppt.
Unter von Benutzer-Feedback, stattdessen eine zufällige Datei hinzuzufügen , wie a_file_and_make_a_commit
können Sie wählen , eine hinzuzufügen .gitignore
, oder README.md
usw.
4 - Apps zuerst zusammenführen repo:
git remote add apps-repo ../apps-repo
git fetch apps-repo
git merge -s ours --no-commit apps-repo/master # see below note.
git read-tree --prefix=apps -u apps-repo/master
git commit -m "import apps"
Jetzt sollte das Apps- Verzeichnis in Ihrem neuen Repository angezeigt werden. git log
sollte alle relevanten historischen Commit-Nachrichten anzeigen.
Hinweis: wie Chris unten in den Kommentaren erwähnt, für neuere Version (> = 2.9) von git, müssen Sie angeben , --allow-unrelated-histories
mitgit merge
5 - Merge libs repo als nächstes auf die gleiche Weise zusammenführen:
git remote add libs-repo ../libs-repo
git fetch libs-repo
git merge -s ours --no-commit libs-repo/master # see above note.
git read-tree --prefix=libs -u libs-repo/master
git commit -m "import libs"
Fahren Sie fort, wenn Sie mehr als 2 Repos zusammenführen möchten.
Referenz: Führen Sie ein Unterverzeichnis eines anderen Repositorys mit git zusammen